解除多个模态视图

时间:2010-07-02 04:12:03

标签: iphone objective-c modal-dialog

我的应用程序在主视图中显示一个模态视图(A),供用户进行选择。当他们进行选择时,它会在第一个(A)的顶部打开第二个模态视图(B)。

当我完成第二个模态视图(B)并想要解雇它时,我想在不再需要的同时解除第一个(A)和第二个(B)用户返回那个(A)。

我唯一想到的是:

[self.parentViewController.parentViewController.parentViewController. dismissModalViewControllerAnimated:YES];

它有效,但看起来不正确。这样做还可以,或者有更多人接受的方法吗?

2 个答案:

答案 0 :(得分:3)

我不认为你的方式是错的。这是Apple documentation建议的内容:

如果连续呈现多个模态视图控制器,从而构建一组模态视图控制器,则在堆栈下方的视图控制器上调用此方法会解除其直接子视图控制器以及堆栈上该子视图上方的所有视图控制器。发生这种情况时,只有最顶层的视图以动画方式被删除;任何中间视图控制器都可以从堆栈中删除。最顶层的视图使用其模态过渡样式被忽略,这可能与堆栈中较低的其他视图控制器使用的样式不同。

答案 1 :(得分:0)

(UIApplication.sharedApplication().delegate! as! AppDelegate).navigationController?.viewControllers.first?.dismissViewControllerAnimated(true, completion: nil)