【问题标题】: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 的viewWillAppearviewDidDisappear 中尝试了这些命令,但没有成功。

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

我的猜测是,最好的方法是在迁移到 VC2 时关闭 VC1,但还没有找到方法。

感谢您的帮助。

【问题讨论】:

  • 显然,从 VC2 更改模型后,您的 VC1 中的视图需要“刷新”。如果您能分享您在 VC1 中的哪些观点,将会有所帮助。

标签: ios swift uitabbarcontroller dismiss


【解决方案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)

【讨论】:

    猜你喜欢
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多