如何在使用标签栏控制器离开视图时忽略视图
问题描述:
我使用标签栏控制器从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,但没有找到方法。
感谢您的帮助。
答
我的建议是,使用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)
观察者很明显,在你的VC1的意见需要从VC2模式改变后,被“刷新”。如果您可以分享您在VC1中拥有什么样的观点,将有助于更多。 –