使用标签栏控制器离开时如何关闭视图

时间:2017-10-05 23:17:58

标签: ios swift uitabbarcontroller dismiss

我使用标签栏控制器从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,但还没有找到方法。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我的建议是,使用NotificationCenter.default.addObserver(forName: Notification.Name(rawValue: "updateVC1"), object:nil, queue:nil) { notification in // do something } 在VC1中添加观察者,并在发生某些事件时从VC2触发。

添加观察者。

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

从VC2触发观察者

NSArray *edges = fetchAllCollectionsJSONResponse[@"data"][@"shop"][@"collections"][@"edges"];
for (NSDictionary *edge in edges) {
    NSString *description = edge[@"node"][@"description"];
    NSLog(@"description = %@", description);
}