使用标签栏控制器离开视图时如何关闭视图
Posted
技术标签:
【中文标题】使用标签栏控制器离开视图时如何关闭视图【英文标题】:How to dismiss a view when leaving it with tab bar controller 【发布时间】:2017-10-05 23:17:57 【问题描述】:我使用标签栏控制器从 VC1 转到 VC2。这样做,VC1 会留在内存中。我使用 VC2 管理数据,当我返回 VC1(使用标签栏控制器)时,我使用 viewWillAppear
中的函数重新加载 VC1,它工作正常,但在重新加载动画期间仍然可以看到以前版本的 VC1。
我必须在动画或重新加载过程开始之前关闭 VC1(从内存中)。
我已经在 VC1 的viewWillAppear
和viewDidDisappear
中尝试了这些命令,但没有成功。
self.dismiss(animated: true, completion: nil)
self.presentedViewController?.dismiss(animated: true, completion: nil)
我的猜测是,最好的方法是在迁移到 VC2 时关闭 VC1,但还没有找到方法。
感谢您的帮助。
【问题讨论】:
显然,从 VC2 更改模型后,您的 VC1 中的视图需要“刷新”。如果您能分享您在 VC1 中的哪些观点,将会有所帮助。 【参考方案1】:我的建议,使用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)
【讨论】:
以上是关于使用标签栏控制器离开视图时如何关闭视图的主要内容,如果未能解决你的问题,请参考以下文章