在显示初始视图控制器之前,您的应用代表是 调用,让您有机会配置视图控制器。
但实际上并没有发生这种情况。
single view template
在Xcode中创建了项目。ViewController.m
我添加了awakeFromNib
方法,而我只是NSLog(@"VC")
。AppDelegate
中didFinishLaunchingwithOptions
我NSLog(@"AD")
ViewController
时先执行AppDelegate
。didFinishLaunchingwithOptions
方法总是首先执行,我能够配置所有ViewControllers可以使用的数据库和其他初始内容,但现在我无法做到。ViewController.m
正在执行,我的数据库设置在didFinishLaunchingWithOptions
。出了什么问题?
答案 0 :(得分:4)
没有什么是错的。当故事板加载时,将调用awakeFromNib。文档说明"在初始视图控制器显示"之前。
你可能在awakeFromNib中做了一些不合适的事情,但是没有人知道没有更多的信息
故事板的应用程序生命周期与使用nib略有不同。使用nib,您可以在didFinishLaunching
中创建并填充初始视图控制器。在调用didFinishLaunching
之前,已经为您完成了故事板。然后,您可以使用该方法访问self.window.rootViewController
以获取初始视图控制器。
关键是awakeFromNib
不是做一些好事,比如回应正在设置的数据库或查询值。您的视图尚未加载。你应该在生命周期的后期做这些事情。