我想在viewDidLoad调用之前初始化一些代码,但它总是首先转到viewDidLoad然后转到方法applicationDidFinishLaunching。 我无法理解发生了什么?
答案 0 :(得分:4)
这是因为AppDelegate在applicationDidFinishLaunching之前自动实例化其窗口和主视图控制器。你应该取消选中"是初始视图控制器"在您的故事板中,在applicationDidFinishLaunching中手动创建窗口及其根视图控制器。
答案 1 :(得分:4)
application:didFinishLaunchingWithOptions的文档:
您应该使用此方法初始化您的应用程序并做好准备 它运行。在您的应用程序启动后调用它 并且已加载其主nib文件。当时这个方法是 调用后,您的应用程序处于非活动状态。在某些时候之后 此方法返回,调用后续委托方法移动 您的应用程序到活动(前景)状态或背景 状态。
因此,一旦调用了view属性或方法,就会为视图控制器延迟加载视图。当发生这种情况时,会调用viewDidLoad,因此如果您的窗口rootViewController属性设置为nib中的根ViewController,那么这是预期的行为。