2017-10-05 84 views
0

我使用标签栏控制器从VC1转到VC2。这样做,VC1停留在内存中。我使用VC2管理数据,当我回到VC1(使用标签栏控制器)时,我使用viewWillAppear中的函数重新加载VC1,但它的工作正常,但在重新加载动画期间,VC1的先前版本仍然可见。如何在使用标签栏控制器离开视图时忽略视图

我必须在动画或重新加载过程开始之前关闭VC1(从内存中)。
我试过了,在viewWillAppear,和viewDidDisappear的VC1这些命令都没有成功。

self.dismiss(animated: true, completion: nil) 
self.presentedViewController?.dismiss(animated: true, completion: nil) 

我的猜测是,最好的办法是解散VC1时,移动到VC2,但没有找到方法。

感谢您的帮助。

+0

观察者很明显,在你的VC1的意见需要从VC2模式改变后,被“刷新”。如果您可以分享您在VC1中拥有什么样的观点,将有助于更多。 –

回答

0

我的建议是,使用NotificationCenter在VC1中添加观察者,如果发生某些事件,则从VC2中触发。

添加观察者。

NotificationCenter.default.addObserver(forName: Notification.Name(rawValue: "updateVC1"), 
             object:nil, queue:nil) { 
             notification in 

             // do something 
} 

触发信号VC2

NotificationCenter.default.post(name: Notification.Name(rawValue: "updateVC1"), object: nil) 
相关问题