我在 iOS 6.0 上面临崩溃。我有一个视图控制器,从中我以模态方式呈现导航视图控制器,然后从导航堆栈中以模态方式呈现另一个视图控制器,最后为了关闭整个模态堆栈,我将以下消息传递给我的第一个视图控制器,从那里显示导航控制器。
现在这在 6.0 以下的 iOS 上运行良好。我该如何处理?
[自我dismissModalViewControllerAnimated:是];
我在 iOS 6.0 上面临崩溃。我有一个视图控制器,从中我以模态方式呈现导航视图控制器,然后从导航堆栈中以模态方式呈现另一个视图控制器,最后为了关闭整个模态堆栈,我将以下消息传递给我的第一个视图控制器,从那里显示导航控制器。
现在这在 6.0 以下的 iOS 上运行良好。我该如何处理?
[自我dismissModalViewControllerAnimated:是];
我也遇到了类似的崩溃,其中一件事帮助我解决了它是添加:
vc.modalPresentationStyle = UIModalPresentationCurrentContext;
编辑:假设您向 appDelegate 添加了一个名为 'makeMeNumberOne:(UIViewController *)vc' 的方法:(我知道您使用的是 'modal' 版本,它们在 iOS6 中已被弃用,请切换到 'presented' 变体)。另外我假设您可以找到导航控制器,如果这是一个问题添加评论,我将进一步扩展它,并假设您使用的是 ARC。)
您拥有的参数是一个强引用,它保存当前呈现的 viewController,我们称之为 pvc
向 navigationController 询问它的 viewControllers,然后得到最后一个
作为调试工具,验证这个 vc 有一个非 nil 的presentedViewController 属性
消息上面的最后一个视图控制器:
[lastOne dismissViewControllerAnimated:NO 完成:^{ [navigationController.viewControllers = @[pvc]; }];
可能是因为在 iOS6 中不推荐使用dismissModalViewController?尝试
[self dismissViewControllerAnimated:YES completion:nil];