Ios 从第三个或第四个视图控制器转到根视图控制器swift

Ios 从第三个或第四个视图控制器转到根视图控制器swift,ios,xcode,swift,uiviewcontroller,uistoryboard,Ios,Xcode,Swift,Uiviewcontroller,Uistoryboard,我有3个视图控制器,以模式显示,如何取消视图控制器并直接从第三个右视图控制器返回到第一个(根)视图控制器 基本上,当我从第三个调用dismissViewControllerAnimated时,我希望它也关闭底层的第二个视图控制器,直接返回第一个视图,将其他视图从内存中释放出来 编辑 简单地说,我们想从右边的第三个视图返回到第一个视图,而不必穿过中间的视图。显然,我不能从第三个表中只显示第一个,因为这是一个巨大的内存泄漏 为此,请使用NSNotificationCenter。 要关闭所有视图控制器

我有3个视图控制器,以模式显示,如何取消视图控制器并直接从第三个右视图控制器返回到第一个(根)视图控制器

基本上,当我从第三个调用
dismissViewControllerAnimated
时,我希望它也关闭底层的第二个视图控制器,直接返回第一个视图,将其他视图从内存中释放出来

编辑

简单地说,我们想从右边的第三个视图返回到第一个视图,而不必穿过中间的视图。显然,我不能从第三个表中只显示第一个,因为这是一个巨大的内存泄漏


为此,请使用
NSNotificationCenter
。 要关闭所有视图控制器时,可以发布通知:

NSNotificationCenter.defaultCenter().postNotification("dismissNotification")
然后让这些视图控制器注册,以便在您的
视图将出现的功能中侦听此类通知:

 NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("dismissFunction"), name: "dismissNotificaiton", object: nil)
最后,在
dismiss函数中调用
dismissViewController:

self.dismissViewControllerAnimated(true, completion: nil)
试试这个:

self.dismissViewControllerAnimated(true, completion: nil)

让我知道您是否需要:)

“dismissViewControllerAnimated”似乎总是会关闭俯视图控制器,即使您在基础视图控制器中用“self”作为前缀。Hmm。。您是否考虑将模型视图控制器设置在另一个导航控制器上?这样,如果关闭主导航控制器,所有其他控制器将立即关闭。这将删除当前视图并显示基础视图控制器。请看我的编辑,让它更清晰。我也有同样的问题。你解决了这个问题吗?你需要把所有的东西都放在一个容器视图控制器中,并使用从ViewController:到ViewController:的转换方法。实际上,我已经能够将一个按钮连接到unwindToViewController(在故事板上),它会取消我的所有视图控制器(以模式显示)。如果我需要在没有按钮的情况下做同样的事情,也许我会用这个,谢谢。