我正在使用我的应用中的UINavigationController
。在viewDidLoad
中,根视图控制器从Internet获取信息,对其进行解析并显示它。
当转到UINavigationController
中的另一个视图,然后返回到根UIViewController
时,控制器中的信息不会重新加载。这使我认为viewDidLoad
没有被调用。
当根视图控制器弹回到UINavigationController
时,我应该使用什么方法来确保重新加载此信息?
修改
感谢快速回复的人,这意味着很多。还有一个关于答案的问题:viewWillAppear
或viewDidAppear
?每个人都有利弊吗?
答案 0 :(得分:8)
您应该处理viewWillAppear:
或viewDidAppear:
,具体取决于您是否希望在屏幕上显示视图之前或之后重新加载。 <{1}}仅在加载视图时被调用一次。
答案 1 :(得分:1)
答案 2 :(得分:1)
你是对的,它没有被召唤。如果您想在每次转到UIViewController
时调用它(UINavigationController
内有一个),只需将其放在viewDidAppear
或viewWillAppear
上。
viewWillAppear
发生在viewDidAppear
之前。出于速度目的,我会以异步方式在辅助线程上的viewDidAppear
上执行此操作,因此UI线程不会减慢速度。检索完数据后,我会更新视图。
答案 3 :(得分:1)
viewDidLoad
仅在最初创建视图控制器时调用,或者由于它被隐藏且应用程序收到内存警告而被卸载。您可以选择实施viewWillAppear:
或viewDidAppear:
来刷新用户界面。