iOS8中dismissViewControllerAnimated崩溃

4

我有一个在iOS7.0/7.1上很好运行的应用程序。自从最后一次iOS更新(8.0)以来,每次调用dismissViewControllerAnimated都会崩溃。有人遇到过这种情况吗?
我有一个控制器来调用第二个控制器:

**detailViewController.delegate = self;
[self presentViewController:detailViewController animated:YES completion:nil];**

在关闭按钮中,我使用了这个:
**// Do something with the sender if needed
[viewController dismissViewControllerAnimated:YES completion:NULL];**

我使用这篇文章 (从另一个视图控制器中移除视图控制器) 作为实现“第二个”控制器的指南,但是仍然出现了崩溃。

有什么想法吗?


如果您询问有关“崩溃”的问题,是否包括完整的、精确的异常消息和异常堆栈跟踪的想法如何? - Hot Licks
由于这个用户显然是 SO 的新手,我们应该问他得到的错误是否为“EXC_BAD_ACCESS”。 - Zia
我在ShareKit library中遇到了EXC_BAD_ACCESS错误。不想打断主题,但是在崩溃前的断点处验证了被呈现的ViewController和呈现的ViewController都还活着。同时验证它只出现在iOS 8上。 - Steve Y
2个回答

5

当我在程序中进行代码自动处理时(例如委托完成一个进程时),我遇到了非常类似的问题。

我使用了以下方法,它完美地解决了问题:

if (![self isBeingDismissed]) {
    [self dismissViewControllerAnimated:YES completion:^{    }];
}

它只是检查是否已经在关闭过程中。希望这对你有用!


@Andrew 你可以在任何想要关闭视图控制器的地方添加这段代码。你不需要覆盖任何东西。在我的情况下,它是一个“取消”按钮的IBAction方法。 - Wapiti

0

检查是否定义了如下所述的dealloc函数。有时可能会导致崩溃。

- (void)dealloc {
      [_yourview release]; //don't do this
      [super dealloc];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接