dismissViewControllerAnimated问题:呈现控制器消失了

时间:2013-08-02 20:41:49

标签: ios6 modal-dialog

我试图在调用[self presentViewController:modalController animated:YES completion:nil]之后调用[self.presentingViewController dismissViewControllerAnimated:YES completion:nil]。

一切都可以显示和隐藏模态控制器,但是当它被隐藏时,呈现控制器显示的是不同的屏幕。

该呈现控制器是一个导航控制器,它基本上回到显示的第一页。

我做错了什么?

由于

1 个答案:

答案 0 :(得分:1)

文档说明了dismissViewControllerAnimated:completion:

  

呈现视图控制器负责解除它所呈现的视图控制器。如果在呈现的视图控制器本身上调用此方法,它会自动将消息转发给呈现视图控制器。

     

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

所以也许你在'错误'的viewcontroller上调用这个方法。尝试找出self.presentingViewController返回哪个viewcontroller和/或(仅用于测试)尝试在模态视图控制器本身上调用dismissViewControllerAnimated:completion: