У меня есть приложение для iPhone, которое я сейчас конвертирую в универсальный двоичный файл для работы с iPad.Я успешно реализовал все, что мне нужно с точки зрения макета, так что теперь в моем приложении поддерживается полная функциональность ландшафта (ранее я в основном использовал портретный режим для отображения контента).
Но у меня есть одна странная проблема,ТОЛЬКО происходит в ландшафтном режиме: когда я помещаю контроллер вида в стек, требуется два нажатия на кнопку возврата , чтобы вернуться к предыдущему контроллеру представления!Первое нажатие показывает пустой вид, но с тем же именем на левой боковой навигационной кнопке, второе нажатие возвращает контроллер к предыдущему виду, как и должно быть.
У меня нет iPad длятест, поэтому я полагаюсь на симулятор.Проблема не отображается на iPhone и не появляется, если вы вернетесь в портретный режим.
Мое приложение состоит из контроллера tabbar с контроллерами навигации, загруженными для его виртуальных каналов:
//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];
Это только ошибка симуляции?Как мне исправить эту проблему?