【发布时间】:2014-06-05 12:39:31
【问题描述】:
Apple doc 说:
在显示初始视图控制器之前,您的应用委托是 调用以使您有机会配置视图控制器。
但这实际上并没有发生。
- 我在 Xcode 中使用
single view template创建了项目。 - 在
ViewController.m中我添加了awakeFromNib方法,在里面我只是NSLog(@"VC")。 - 然后在
AppDelegate在didFinishLaunchingwithOptions我只是NSLog(@"AD") - 当我运行项目时
ViewController先执行然后AppDelegate。 - 没有故事板
didFinishLaunchingwithOptions方法总是首先执行,我能够配置所有 ViewController 都可以使用的数据库和其他初始内容,但现在我不能这样做。 -
ViewController.m首先执行,我的数据库设置在didFinishLaunchingWithOptions。
出了什么问题?
【问题讨论】:
-
一切正常。
awakeFromNib在情节提要加载时被调用。文档声明“在初始视图控制器显示之前”。与您之前已删除的问题一样,要获得实际答案,您必须说出您实际上想要做什么,以及为什么这会导致您出现问题。您可能在 awakeFromNib 中做一些不合适的事情,但没有更多信息没人知道。 -
我猜你正试图在 awakeFromNib 中做一些你应该在 viewDidLoad 中做的事情。
-
@jrturton 在 didFinishLaunchingWithOptions 中,我想从主捆绑数据库创建/设置/复制,在 awakeFromNib 中,我想查询和使用 ViewController.m 中的数据,但 ViewController 被提前调用。
-
AwakeFromNib 是错误的做法。要么告诉你的视图控制器事情已经从应用程序委托中准备好了,要么在 viewWillAppear / viewDidLoad 中做你的事情。
-
@jrturton 但没有故事板 didFinishLaunchingWithOptions 是第一个执行的方法
标签: ios objective-c uistoryboard appdelegate