viewDidLoad和viewDidAppear之间的区别

viewDidLoadviewDidAppear什么区别? 什么样的初始化或自定义代码进入这些function?

例如presentModalViewController只在存在于viewDidAppear而不在viewDidLoad

当视图控制器第一次加载到内存中时, viewDidLoad被调用一次。 这是您想要实例化任何实例variables的位置,并构build在此视图控制器的整个生命周期中存在的任何视图。 但是,目前这个观点通常还不明显。

viewDidAppear在视图实际可见时被调用,并且可以在View Controller的生命周期中多次调用(例如,当Modal View Controller被解散并且视图再次可见时)。 这是您要执行任何布局操作或在UI中执行任何绘图的地方 – 例如,呈现模式视图控制器。 但是,你在这里做的任何事情都应该是可重复的。 最好不要在这里留下东西,否则如果在视图消失的时候你不释放它们,你会得到内存泄漏。

请参阅: https : //developer.apple.com/documentation/uikit/uiviewcontroller

简单地说,你会想在viewDidLoad创build任何控件或数组,在viewDidAppear中你想要刷新这些控件或数组。

当控制器被创build时, viewDidLoad被调用一次,并且每当view,DID出现时调用viewDidAppear 。 所以说你有一个模式的观点,你提出,当这个观点被驳回, viewDidAppear将被调用,并且viewDidLoad将不会被调用。