Objective c 重新加载根视图控制器
我正在应用程序中使用Objective c 重新加载根视图控制器,objective-c,ios,cocoa-touch,uiviewcontroller,uinavigationcontroller,Objective C,Ios,Cocoa Touch,Uiviewcontroller,Uinavigationcontroller,我正在应用程序中使用UINavigationController。在viewDidLoad中,根视图控制器从internet获取信息,对其进行解析并显示 当转到UINavigationController中的另一个视图,然后返回根UIViewController时,不会重新加载控制器中的信息。这让我想到,viewDidLoad没有被调用 在UINavigationController中弹出根视图控制器时,我应该使用什么方法确保重新加载此信息 编辑: 谢谢大家的快速反应,这意味着很多。关于您的答案
UINavigationController
。在viewDidLoad
中,根视图控制器从internet获取信息,对其进行解析并显示
当转到UINavigationController
中的另一个视图,然后返回根UIViewController
时,不会重新加载控制器中的信息。这让我想到,viewDidLoad
没有被调用
在UINavigationController
中弹出根视图控制器时,我应该使用什么方法确保重新加载此信息
编辑:
谢谢大家的快速反应,这意味着很多。关于您的答案,还有一个问题:
视图将出现
或视图显示
?每个视图都有优点/缺点吗?您应该使用viewDidAppear
,viewDidLoad
仅在第一次加载视图后调用
请在此处查看:
您应该处理
视图将显示:
或视图显示:
,这取决于您希望在屏幕上显示W视图之前还是之后重新加载<加载视图时,code>viewDidLoad仅被调用一次。您是对的,它没有被调用。如果您想在每次转到UIViewController
(您的UINavigationController
中有一个)时调用它,只需将它放在viewdide
或视图将出现
viewwillbeen
发生在viewdidebeen
之前。为了提高速度,我会以异步方式在辅助线程上的viewdide
上执行此操作,这样UI线程就不会减慢速度。一旦检索到数据,我将更新视图。viewDidLoad
仅在最初创建视图控制器时调用,或者由于它被隐藏且应用程序收到内存警告而卸载时调用。您可以交替实施视图将出现:
或视图显示:
来刷新UI。这取决于从internet检索和处理信息的时间,您可能还需要调用setNeedsDisplay
,这将告诉设备需要刷新视图。@设备这是对您后续问题的一个很好的回答。视图将在视图显示之前处理,视图将在视图推到堆栈顶部后处理。