我有几个控制器链接到TabBar控制器。 每次从一个标签切换到另一个标签时,都会显示前一个控制器。我认为当我选择一个标签时,会构建一个新的控制器并显示其新视图。是否有可能有这种行为,而不是像隐藏它时那样显示视图?
答案 0 :(得分:1)
要稍微详细地回答您的问题,您可以使用viewDidAppear方法。这样你就可以更新你的UI,而不是重新加载viewController,从而导致可能的内存问题。
override func viewDidLoad() {
// all UI items will be changed here upon the first instantiation of the viewController.
super.viewDidLoad()
print("loaded FirstViewController viewDidLoad()")
}
override func viewDidAppear(_ animated: Bool) {
// reload your UI elements here if you want and update between switching viewControllers.
print("loaded FirstViewController viewDidAppear()")
}
在过去,有viewDidUnload
的方法,但根据Apple文档:
在低内存条件下不再清除视图,所以这样 方法永远不会被调用。
您可以使用didReceiveMemoryWarning
但是当涉及到查看控制器时,我会让UIKit和ARC完成它的工作并在需要时释放VC。