Я разрабатываю приложение, которое имеет несколько представлений и контроллер корневого представления. Он основан на использовании UINavigationController pushViewController: В didFinishLaunchingWithOptions:iOS6 Ориентация с NavigationController
BIDLoginController *loginController = [[BIDLoginController alloc] initWithNibName:@"Login" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:loginController];
[self.window setRootViewController:self.navController];
В LoginController:
BIDMainPageController *mainPageController = [[BIDMainPageController alloc] initWithNibName:@"MainPage" bundle:nil];
[self.navigationController pushViewController:mainPageController animated:YES];
но контроллеры вид являются подклассами UIViewController, не UINavigationController. Теперь я хочу, чтобы некоторые взгляды поддерживали ориентацию (портрет и пейзаж), а некоторые из них поддерживали только портрет. Я пробовал следующее:
- (BOOL)shouldAutorotate
{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
Это не работает. shouldAutorotate: метод никогда не вызывался. Я также попробовал UINavigationControllerDelegate без результата. Когда я меняю суперкласс класса view с UIViewController на UINavigationController, представление не отображается, отображается только панель навигации. Может кто-нибудь помочь с этим?
Возможный дубликат [Unsupport Orientation in iOS6] (http://stackoverflow.com/questions/16469651/unsupport-orientation-in-ios6) – matt