如何从表示堆栈中删除中间UIViewController

时间:2015-05-21 22:31:29

标签: ios objective-c uiviewcontroller presentviewcontroller

我是一名经验丰富的iOS开发人员,但我偶然发现了一个我不完全确定如何解决的问题。

让我们说例如我分别有3个UIViewControllers,A,B和C. A是根,B显示在A之上,C显示在B之上。

B和C使用presentViewController呈现:animated:completion: 所以演示文稿堆栈看起来像这样。

[A] - > [B] - > [C]

在我的课程中,我想解雇B而且只有B dismissViewControllerAnimated:completion:如果我解雇B,它将要求其A解雇B,然后也将解雇C.我不要那个。我想解雇B,只有A会选择C作为它的presentViewController,如此

[A] - > [C]

这可能吗?

--------注释-------

我意识到这似乎更适合于另一种表示模式,其中A,B,C将是共同的parentViewController下的兄弟姐妹。但我可能不会使用它。

presentViewController / presentsViewController模式就像一个双链接列表。但是,由于这些属性是只读的,因此我无法进行任何节点操作。

1 个答案:

答案 0 :(得分:0)

您是否可以使用隐藏导航栏的导航控制器并推送控制器而不是呈现它们(使用模仿演示文稿的推送和弹出动画)。 然后使用setViewControllers将ABC堆栈替换为AC堆栈?