我的问题似乎有点奇怪,我有一个自定义的UITarBar
,它管理着几个UINavigationController
,其中包含一个UIViewController
,该视图控制器在UITabBar
按钮touchUpInside
时以模态方式呈现这些NavController
s。因此,在iOS 5中,我的应用由于dismissModalViewControllerAnimated:
方法而崩溃...如果将dismiss方法更改为iOS 5上的新方法(dismissViewControllerAnimated:completion:
),它将无法解除NavController
。下面是一些代码,展示了我如何更改控制器:
- (void) changeController
{
if ([self.generalViewController respondsToSelector:@selector(dismissViewControllerAnimated:completion:)]) {
[self.generalViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];
} else {
[self.generalViewController dismissModalViewControllerAnimated:NO];
}
[self.anotherNavController.view addSubview:customTabBar];
if ([self.generalViewController respondsToSelector:@selector(presentViewController:animated:completion:)]) {
[self.generalViewController presentViewController:anotherNavController animated:NO completion:nil];
} else {
[self.generalViewController presentModalViewController:anotherNavController animated:NO];
}
所有内容都在AppDelegate
中管理。提前感谢您的帮助。
编辑:我在这篇文章dismissModalViewControllerAnimated: (and dismissViewControllerAnimated) crashing in iOS 5中找到了一些信息,按照他所做的(用动画呈现第一个viewControllerAnimated)然后像我以前对新的presentViewController选择器检查一样,一切在模拟器上正常工作但是在设备上却不行...