当我尝试调用dismissViewController时app崩溃了

时间:2012-05-18 09:57:18

标签: iphone objective-c ios

我有一个视图,我称之为我的方法:

    Twitter *tweet = [[Twitter alloc] initWithNibName:@"Twitter" bundle:nil];

[self presentModalViewController:tweet animated:YES];

viewcontroller没有任何问题。现在当我尝试在twitter视图控制器的方法中调用dismissviewcontroller时:         [self dismissModalViewControllerAnimated:NO];

该应用程序崩溃了?

即使基本结构正确但仍然应用程序崩溃?为什么会这样?

3 个答案:

答案 0 :(得分:2)

尝试:[self.parentViewController dismissModalViewControllerAnimated:NO]; - 这是因为模态视图控制器由提供Twitter控制器的控制器呈现,它是需要关闭模态控制器(即Twitter控制器)的控制器

<强>更新 如果您的目标是iOS 5+,请使用:

[self dismissViewControllerAnimated:NO completion:nil];
//or
[self.presentingViewController dismissViewControllerAnimated:NO completion:nil];

否则,如果要保持向后兼容性,请使用:

if([self respondsToSelector:@selector(dismissViewControllerAnimated:completion:)])
{
    [self dismissViewControllerAnimated:NO completion:nil];
}
else
{
    [self dismissModalViewControllerAnimated:nil];
}

答案 1 :(得分:0)

您需要从导航控制器中关闭视图。试试这个:

[self.navigationController dismissModalViewControllerAnimated:YES];

答案 2 :(得分:0)

当您在析构函数中过度释放某些内容(dealloc方法)时,通常会发生此类问题。 IB总是添加代码来释放对象,但它看起来不存在。