如何从演示文稿堆栈中删除中间的UIViewController
我是一位经验丰富的iOS开发人员,但我偶然发现了一个我并不完全确定如何解决的问题。如何从演示文稿堆栈中删除中间的UIViewController
可以说例如我有3个UIViewControllers,A,B和C分别。 A是根,B呈现在A和C之上,而C呈现在B之上。
使用presentViewController呈现B和C:动画:完成: 因此演示堆栈看起来像这样。
[A] - > [B] - > [C]
在我的计划,我想解雇B和B.只对文档 dismissViewControllerAnimated:完成:说如果我解雇B,它将要求其A解雇B,然后也解雇C。我不要那个。我想解雇只有B使得A将选择C作为其presentedViewController像这样
[A] - > [C]
这可能吗?
--------注-------
我知道这似乎更适合于另一个呈现图案,其中A,B,C将是在一个共同的parentViewController兄弟姐妹。但我可能不会使用它。
presentedViewController/presentingViewController模式就像一个双向链表。但是,由于这些属性是只读的,我不能执行任何节点操作。
您可以使用隐藏导航栏的导航控制器,并推送控制器而不是呈现它们(使用模仿演示文稿的推动和弹出动画)。 然后使用setViewControllers将AC堆栈替换为AC堆栈?
他们被呈现,而不是推。这不起作用。 – rmaddy
您在完成之前阅读该文章。我说“并推送控制器而不是呈现它们(使用模仿演示文稿的推动和弹出式动画)” – Gruntcakes
但是,这会产生不需要的后退按钮,而不是在呈现而不是推送时出现。 – rmaddy
好像添加模拟演示动画将会是解决方案的子视图 – vichevstefan
为什么你需要解雇B?为什么不等到你需要解雇C,然后解雇B(这也会解雇C)? – rmaddy
因为B将不再使用,我不希望它在记忆中停留。 – DerrickHo328