У меня другая проблема с ориентацией. Но этот очень сложный. Мой RootViewController — это обычный NavigationController.
self.window.rootViewController = _naviController;
внутри которого есть еще один ViewController, назовем его VC1. В VC1 есть несколько кнопок и меток. Это как обзор с папками.
Если я нажму кнопку, я перейду к следующему ViewController с 3 ViewController (Page) и еще одним набором кнопок (например, внутри папки, просматривающей изображения/миниатюры внутри):
Archiv *archiv = [[Archiv alloc] init];
[self.navigationController pushViewController:archiv animated:YES];
[archiv release];
в loadView:
firstPage = [[Page alloc] initViewWithFrame:CGRectMake(0, 0, 768, 960)];
[firstPage setRootViewController:self];
secondPage = [[Page alloc] initViewWithFrame:CGRectMake(0, -960, 768, 960)];
[secondPage setRootViewController:self];
thirdPage = [[Page alloc] initViewWithFrame:CGRectMake(0, 960, 768, 960)];
[thirdPage setRootViewController:self];
Если я сейчас снова нажму кнопку, активная страница нажмет мой третий ViewController (изображение с изменением размера, перетаскиванием...):
Picture *pic = [[Picture alloc] initWithPicURLString:urlString];
[rootViewController.navigationController pushViewController:pic animated:YES];
[pic release];
С помощью BackButton NavigationController я всегда могу вернуться к предыдущему представлению.
Еще немного информации:
- Каждый ViewController поддерживает все ориентации
- Каждый ViewController реализует
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
сreturn YES;
- Каждый ViewControler вызывает
[super init]
в своем методе инициализации - Я уже прочитал вопросы и ответы Apple: почему мой UIViewController не вращается вместе с устройством
Теперь сложная задача:
Если я переключаюсь со 2-й ВК на 3-ю, меняю там ориентацию с книжной на альбомную и нажимаю кнопку «Назад», все работает (shouldAutorotateToInterfaceOrientation
звонит, размер кадра и происхождение меняются ...). НО если я сделаю это наоборот, я нахожусь в ландшафтном режиме, переключаюсь со 2-го VC на 3-й VC, поворачиваю в портретную и прихожу вернитесь ко 2-му VC с помощью BackButton, статус- и контроллербар находятся вверху, но shouldAutorotateToInterfaceOrientation
не был вызван.
Пожалуйста помогите. $h@rky