尝试多个选项后无法关闭模态视图控制器

时间:2013-08-29 14:12:34

标签: ios view dismiss

嗨,有一个无法关闭的视图问题。我已经阅读了很多Q& As,我试过了

[self dismissModalViewControllerAnimated:YES]

一旦它不起作用我尝试调用父视图:

[self.parentViewController dismissModalViewControllerAnimated:YES];

然后讨论了iOS 5及更高版本的工作原理,我尝试了这段代码:

 if ([self respondsToSelector:@selector(presentingViewController)]){
     [self.presentingViewController dismissModalViewControllerAnimated:YES];
 } else {
     [self.parentViewController dismissModalViewControllerAnimated:YES];
 }

我尝试过的最后一件事是添加以下代码来从主线程进行调用:

[self performSelectorOnMainThread:@selector(dismissSelf) withObject:nil waitUntilDone:NO];

最终,我无法解决问题,因为对我来说没有任何作用。 我很高兴看到让它发挥作用的“杀手”系列。

谢谢, 西蒙

1 个答案:

答案 0 :(得分:2)

你的问题(基于你的评论)是你在技术上没有使用模态,你正在使用子视图!

如果你想使用模态你需要做:

[self presentModalViewController:self.fav animated:YES];

显示您的控制器,而不是:[self.view addSubview:_fav.view];

然后你的解雇会起作用(你的许多解决方案都会起作用):

[self dismissModalViewControllerAnimated:YES];

否则,如果您确实希望使用子视图,则需要执行此操作以将其删除:

[self.fav.view removeFromSuperview];

(看起来您也在使用ivars。如果您希望继续使用它们,请将self.fav替换为_fav

相关问题