从第四个视图控制器转到根视图控制器swift
我有3个视图控制器,以模态方式呈现,我如何关闭视图控制器并直接从第三个右侧回到第一个(根)视图控制器。从第四个视图控制器转到根视图控制器swift
基本上,当我从第三个调用dismissViewControllerAnimated
我希望它也可以关闭第二个视图控制器并直接返回到第一个视图,从内存中释放其他视图。
编辑
简单地说,希望从第三视图去右边,又回到了第一,而不必经过并关闭在中间。显然,我不能仅仅介绍第一个形式,因为这是一个巨大的内存泄漏。
使用NSNotificationCenter
了点。 您可以发布一个通知,当你想关闭所有您的视图控制器:
NSNotificationCenter.defaultCenter().postNotification("dismissNotification")
然后使这些视图控制器登记在viewWillAppear
功能听这样的通知:
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("dismissFunction"), name: "dismissNotificaiton", object: nil)
最后,打电话dismissViewController:
你dismissFunction
self.dismissViewControllerAnimated(true, completion: nil)
'dismissViewControllerAnimated'似乎总是关闭顶部视图控制器,即使您在底层视图控制器中以'self'作为前缀。 – 2015-01-27 21:18:16
嗯..你认为有模型视图控制器设置在另一个导航控制器?这样,如果您解散主导航控制器,则所有其他控制器将立即解散。 – 2015-01-28 00:52:18
试试这个:
self.dismissViewControllerAnimated(true, completion: nil)
让我知道如果你需要:)
这将删除当前视图并显示底层视图控制器。看看我的编辑,使其更清晰 – 2015-01-27 21:54:32
嗨什么,我有同样的问题。你解决了这个问题吗? – 2015-03-03 11:03:03
您需要将所有内容放在容器视图控制器中,并使用transitionFromViewController:toViewController:方法。 – 2015-03-03 14:43:33
其实我已经能够将一个按钮连接到unwindToViewController(在故事板上)并且它关闭了所有我的viewcontrollers(模态地呈现)。如果我不需要按钮就可以做同样的事情,也许我会用这个,谢谢。 – 2015-03-03 17:04:02