Я создал структуру NavigationController.
FirstViewController - это RootViewController, SecondViewController - это следующий SubViewController. Каждый ViewController долженAutorotateToInterfaceOrientation отличается (см. Следующий код).
FirstViewController доступен только в портретном режиме. SecondViewController все поддерживают Portrait и landscapeMode.
В FirstViewController после касания кнопки вызовите pushHandler. Следующий SecondViewController является нажатием.
В SecondViewController после поворота ландшафта обратно в FirstViewController эта ориентация слишком горизонтальна.
но я реализовал каждую ориентацию ViewController по-разному. однако каждый ViewController не самостоятельно устанавливает ориентацию. почему случилось?
Как я могу просмотреть контроллер, каждую ориентацию можно установить независимо, чтобы сделать?
Если SecondViewController изменяет ориентацию ландшафтного режима. Я хочу вернуться к FirstViewController по-прежнему PortraitMode (навсегда удерживайте PortraitState Все, что не будет затронуто).
Как мне реализовать программно?
FirstViewController *rootViewController = [FirstViewController alloc] init];
UINavigationController *MyNavigationController = [UINavigationController alloc] initWithRootViewController:rootViewController]];
// FirstViewController
- (void)pushHandler
{
SecondViewController *subViewController = [SecondViewController alloc] init];
[[self navigationController] pushViewController:subViewController animated:YES];
[subViewController release];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
// SecondViewController
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}