Проблемы со стеком навигации UINavigationController в ландшафтном режиме
У меня есть приложение для iPhone, которое я сейчас конвертирую в универсальный бинарный файл для работы с iPad. Я успешно реализовал все, что мне нужно в плане макета, так что теперь в моем приложении поддерживается полная функциональность ландшафта (ранее я в основном использовал портретный режим для отображения содержимого).
Но у меня есть одна странная проблема, и она возникает ТОЛЬКО в ландшафтном режиме: когда я помещаю контроллер представления в стек, требуется два нажатия на кнопку "назад", чтобы вернуться к предыдущему контроллеру представления! Первое нажатие показывает пустой вид, но с тем же именем на левой навигационной кнопке назад, второе нажатие возвращает контроллер к предыдущему виду, как и должно быть.
У меня нет iPad для тестирования, поэтому я полагаюсь на симулятор. Проблема не отображается на iPhone и не отображается, если вы вернетесь в портретный режим.
Мое приложение состоит из tabbarcontroller с контроллерами навигации, загруженными для его vc's:
//application delegate
- (void)applicationDidFinishLaunching:(UIApplication *)application
//....
WebHelpViewController *vc8 = [[WebHelpViewController alloc] init];
UINavigationController *nv8 = [[UINavigationController alloc] initWithRootViewController:vc8];
[self.tabBarController setViewControllers:[NSArray arrayWithObjects:nv1,nv2,nv3,nv4,nv5,nv6,nv7,nv8,nil]];
Для реализации возможностей ландшафта UITabBarController переопределяется для автоматического поворота при необходимости:
//CustomTabBarController.m
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return [[(UINavigationController *)self.selectedViewController topViewController] shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}
... работает отлично. Я перемещаюсь в новые представления, используя этот метод
SomeViewController *vc = [[SomeViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
[vc release];
Это только ошибка симуляции? Как мне исправить эту проблему?
1 ответ
Это звучит как другое ViewController
отвечает на:
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
Проверьте это первым.