嗨,有一个无法关闭的视图问题。我已经阅读了很多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];
最终,我无法解决问题,因为对我来说没有任何作用。 我很高兴看到让它发挥作用的“杀手”系列。
谢谢, 西蒙
答案 0 :(得分:2)
你的问题(基于你的评论)是你在技术上没有使用模态,你正在使用子视图!
如果你想使用模态你需要做:
[self presentModalViewController:self.fav animated:YES];
显示您的控制器,而不是:[self.view addSubview:_fav.view];
然后你的解雇会起作用(你的许多解决方案都会起作用):
[self dismissModalViewControllerAnimated:YES];
否则,如果您确实希望使用子视图,则需要执行此操作以将其删除:
[self.fav.view removeFromSuperview];
(看起来您也在使用ivars。如果您希望继续使用它们,请将self.fav
替换为_fav
)