我在iOS7中发生应用程序崩溃,但在iOS6上工作。从我的AppDelegate调试下一个代码时,我检查了在iOS7中是否执行了下一个函数,然后加载了模式视图控制器。

- (void)presentModalWebViewWithURL:(NSURL *)url title:(NSString *)title
{
    [self.modalWebViewController dismissModalViewControllerAnimated:YES];
    self.modalWebViewController = [[[MyModalWebViewController alloc] initWithURL:url] autorelease];
    self.modalWebViewController.title = title;
    UINavigationController *nav = [self.modalWebViewController modalNavigationControllerWithTarget:self dismissSelector:@selector(dismissModalWebView)];
    [self.window.rootViewController presentViewController:nav animated:YES completion:NULL];
}


在iOS6中,我检查了函数是否在最后一行中停止执行,直到加载了模式视图控制器为止。

在iOS7中发生的是,当模态视图控制器尝试加载正在运行的viewWillAppear时,我能够检查到模态视图控制器是否更改了所有值,甚至属性都指向不同类型的对象。我想他们已经被释放了,但我不知道为什么以及如何解决。有什么建议么?

最佳答案

关闭模式视图控制器时,应该在提供视图控制器的视图控制器上调用dismiss方法。同样不建议使用dismissModalViewControllerAnimated:方法,而应使用dismissViewControllerAnimated:completion:。因此,查看您的代码,您可能应该在self.window.rootViewController上调用dismiss方法,因为这是从中呈现模态视图的方式。

另外,由于不知道其余代码的外观,我假设第一次调用它时,self.modalWebViewController为nil,所以您可能想在调用dismiss之前检查self.modalWebViewController是否设置为某些值,以及随时将其设置为nil。

关于ios - iOS7中的ModalView崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20706581/

10-13 02:56