0

我在 iOS 6.0 上面临崩溃。我有一个视图控制器,从中我以模态方式呈现导航视图控制器,然后从导航堆栈中以模态方式呈现另一个视图控制器,最后为了关闭整个模态堆栈,我将以下消息传递给我的第一个视图控制器,从那里显示导航控制器。

现在这在 6.0 以下的 iOS 上运行良好。我该如何处理?

[自我dismissModalViewControllerAnimated:是];

4

3 回答 3

4

我也遇到了类似的崩溃,其中一件事帮助我解决了它是添加:

vc.modalPresentationStyle = UIModalPresentationCurrentContext;

于 2012-10-05T12:30:28.950 回答
3

编辑:假设您向 appDelegate 添加了一个名为 'makeMeNumberOne:(UIViewController *)vc' 的方法:(我知道您使用的是 'modal' 版本,它们在 iOS6 中已被弃用,请切换到 'presented' 变体)。另外我假设您可以找到导航控制器,如果这是一个问题添加评论,我将进一步扩展它,并假设您使用的是 ARC。)

  • 您拥有的参数是一个强引用,它保存当前呈现的 viewController,我们称之为 pvc

  • 向 navigationController 询问它的 viewControllers,然后得到最后一个

  • 作为调试工具,验证这个 vc 有一个非 nil 的presentedViewController 属性

  • 消息上面的最后一个视图控制器:

    [lastOne dismissViewControllerAnimated:NO 完成:^{ [navigationController.viewControllers = @[pvc]; }];

于 2012-09-27T19:00:18.760 回答
3

可能是因为在 iOS6 中不推荐使用dismissModalViewController?尝试

[self dismissViewControllerAnimated:YES completion:nil];
于 2012-09-27T19:44:24.230 回答