在appDelegate的方法之前调用viewController的viewdidload

我想在我的viewDidLoad调用之前初始化一些代码,但是它总是先去viewDidLoad,然后到applicationDidFinishLaunching方法。 我无法理解发生了什么事?

这是因为AppDelegate在applicationDidFinishLaunching之前自动实例化其窗口和主视图控制器。 您应该取消选中故事板中的“初始视图控制器”,并在applicationDidFinishLaunching中手动创build窗口及其根视图控制器。

应用程序的文档:didFinishLaunchingWithOptions :

您应该使用此方法来初始化您的应用程序并为运行做好准备。 它是在您的应用程序启动并且其主要的nib文件已被加载后调用的。 在调用此方法时,您的应用程序处于非活动状态。 在此方法返回后的某个时刻,将调用后续的委托方法将应用程序移至活动(前景)状态或后台状态。

因此,一旦视图属性或方法被调用,视图就被延迟地加载到视图控制器中。 当发生这种情况时,viewDidLoad被调用,所以如果你的窗口的rootViewController属性设置在你的根的ViewController中,那么这是预期的行为。