我有一个视图,我称之为我的方法:
Twitter *tweet = [[Twitter alloc] initWithNibName:@"Twitter" bundle:nil];
[self presentModalViewController:tweet animated:YES];
viewcontroller没有任何问题。现在当我尝试在twitter视图控制器的方法中调用dismissviewcontroller时: [self dismissModalViewControllerAnimated:NO];
该应用程序崩溃了?即使基本结构正确但仍然应用程序崩溃?为什么会这样?
答案 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总是添加代码来释放对象,但它看起来不存在。