我有一个基于导航控制器的应用程序。从我的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已被重命名为presentsConController。因为我仍然需要支持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;
}
现在一切都很开心。