如何仅解散堆栈中的最后一个控制器而不逐个解散

时间:2019-01-24 18:36:06

标签: ios uikit

例如,我们有uiviewcontrollers:vc0,vc1,vc2。 Vc0是根目录,像vc0上的presentViewController一样添加了vc1,而像vc1上的presentViewController一样添加了vc2。当我尝试从动画vc0调用dismissViewController时,我只希望调用方法viewWillDisappear的vc2控制器,而只有vc2禁用动画。但是实际上首先是关闭vc2,但是在vc1之后,通过调用方法viewDidAppear,viewDidDisappear和动画以模态关闭也将其关闭。我该怎么做才能同时消除所有堆栈vc1和vc2的动画?

1 个答案:

答案 0 :(得分:0)

在vc1的prepare(for segue: UIStoryboardSegue, sender: Any?)中,您通过这样做来传递实例

vc2.vc1 = self

,当然还要在Vc2中声明vc1

然后,当您想同时撤消这两个步骤时,您会这样做

self.dismiss(animated: true)
vc1.dismiss(animated: true)