У меня есть приложение на основе контроллера навигации.Из моего Root VC у меня есть одно представление, которое я представляю модально следующим образом:
[self.navigationController presentModalViewController:shortcutsViewController animated:YES];
shortcutsVC содержит ряд кнопок, которые переносят пользователя в различные места в приложении.
ВiOS 4.3, это работает:
UINavigationController *saveNavigationController = (UINavigationController *)self.parentViewController;
[saveNavigationController pushViewController:multipleListViewController animated:YES];
[saveNavigationController dismissModalViewControllerAnimated:YES];
[multipleListViewController release];
Не работает, если увольнение происходит до нажатия.
В iOS 5 это не работает вообще, независимо от того, в каком порядкедве команды.
Под "не работает" я имею в виду, что кнопка кратковременно подсвечивается, но новый VC не отображается.
Как правильно это сделать?Или я делаю что-то, что было незаконным с самого начала и просто работало в 4.3?
РЕДАКТИРОВАТЬ:
Я получил некоторую автономную помощь по этому вопросу.
Проблема в том,что в iOS5 parentViewController был переименован в представляющий ViewController.Поскольку мне все еще нужно поддерживать и 4.x, и 5.x, я изменил это
UINavigationController *saveNavigationController = (UINavigationController *)self.parentViewController;
на это
UINavigationController *saveNavigationController;
if ([self respondsToSelector:@selector(presentingViewController)]) {
saveNavigationController = (UINavigationController *)self.presentingViewController;
} else {
saveNavigationController = (UINavigationController *)self.parentViewController;
}
И все теперь счастливы.