我刚刚开始研究ios。
我创建了Modalviewcontroller (VC1)
并展示了另一个modalViewcontroller (VC2)
。
VC2上有一个按钮(dismiss)
,它必须关闭两个视图控制器。
我知道的方式是打电话: -
[self dismissViewControllerAnimated:YES completion:nil];
在VC2中然后在VC1中调用相同的文件
所以我创建了一个委托,告诉我是否在VC2中点击了dismiss。 所以当点击解雇时: -
我打电话
[self dismissViewControllerAnimated:YES completion:nil];
在VC2中然后该委托方法将我带到VC1 在那里我再次打电话
[self dismissViewControllerAnimated:YES completion:nil];
这个方法非常有效,直到我在ios9中使用该应用程序 当我转移到ios7时,我开始收到警告,VC1没有被解雇。
请让我知道为什么会这样。
所以那些对我有用的部分,如评论中所述。
[self.presentedViewController dismissViewControllerAnimated:YES completion:^{
[self dismissViewControllerAnimated:YES completion:nil];
}];
答案 0 :(得分:0)
因此,错误会告诉您到底发生了什么。你试图解雇VC1,而你的VC2解雇了。通过将dismissViewControllerAnimated
放入委托方法并不能保证VC1之前会被解雇,而不是在第一次解雇后你应该在完成块中调用[self dismissViewControllerAnimated:YES completion:nil];
,所以你的代码看起来像这样:
[self dismissViewControllerAnimated:YES
completion:^{
[self dismissViewControllerAnimated:YES completion:nil];
}];