0

您好,有一个无法关闭的视图问题。我已经阅读了很多问答并尝试过

[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];

最终,我没有解决问题的方法,因为对我没有任何作用。我会很高兴看到使它起作用的“杀手”行。

谢谢,西蒙

4

1 回答 1

2

您的问题(根据您的评论)是您在技术上没有使用模式,您正在使用子视图!

如果要使用模态,则需要执行以下操作:

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

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

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

[self dismissModalViewControllerAnimated:YES];

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

[self.fav.view removeFromSuperview];

(看起来您正在使用 ivars。如果您想继续使用它们,请替换self.fav_fav

于 2013-08-29T14:23:44.147 回答