在没有级联到根视图控制器的情况下解除视图控制器

时间:2013-06-11 02:01:23

标签: ios objective-c

我有以下UI元素(粗体标签):

Root:
-----------------------
UITabBarController (A)
-----------------------
  |
----------------------------------------------
UIViewController w/ a UITableView subview (B)
----------------------------------------------
  |
--------------------------     ---------------------
UITableViewController (C)  --> UIViewController (D)
--------------------------     ---------------------

A 在其第一个标签中包含 B 。在 B 中单击UITableViewCell时,我使用pushViewControllerAnimated来显示 C ,这非常类似于向下钻取详细信息视图。最后,当点击 C 中的UITableViewCell时,我使用presentViewControllerAnimatedCompletion在弹出模式视图中显示 D

旁注: A D 上有一个UINavigationController。

点击 D 上的关闭按钮时,它会解除模式:

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];

这是成功解雇模式,但它也从 C 一直退回到 B 。我想留在 C

有什么想法吗?

1 个答案:

答案 0 :(得分:-3)

我想你应该致电:

[self dismissViewControllerAnimated:YES completion:nil];

试一试。我的猜测基于Apple的文档:

  

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

因此,如果您在self.presentingViewController上致电解雇。然后 B 将解雇!