1

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

就显示和隐藏模态控制器而言,一切正常,但是当它被隐藏时,呈现控制器将显示不同的屏幕。

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

我究竟做错了什么?

谢谢

4

1 回答 1

1

该文档说dismissViewControllerAnimated:completion:

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

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

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

于 2013-08-03T14:38:45.663 回答