方法applicationDidBecomeActive
,loadView
和viewDidLoad
将在iOS应用中的适当时间调用。对于loadView
和viewDidLoad
,它看起来像是:
-(void) someMethod {
//...
[viewController loadView];
[viewController viewDidLoad];
}
他们是如何被调用的,以及调用它们的类是什么? (是否有源代码可以显示应用程序启动的流程?很多时候,我们只能看到头文件而不是源代码)。
答案 0 :(得分:4)
如果我理解你的问题,你想知道应用程序的生命周期,这是真的吗?
好吧,我猜苹果没有提供可以显示它的样子的源代码。
如果您想知道应用程序启动时的情况,我建议您阅读 Oleb 的app-launch-sequence-ios-revisited。这是一篇非常好的帖子。
关于您编写的方法,不应手动调用这些方法。这是为您调用它们的框架(通过iOS)。
方法loadView
和viewDidLoad
是在UIViewController
生命周期内调用的方法。
如果无法创建故事板或nib文件,则使用(覆盖)loadView
。通过这种方式,您可以为UIViewController
提供全新视图。来自Apple doc:
如果您无法在故事板或nib文件中定义视图, 覆盖loadView方法以手动实例化视图层次结构 并将其分配给view属性。
换句话说:
- (void)loadView
{
UIView* myCustomView = ... // create the view here
self.view = myCustomView;
}
关于viewDidLoad
方法,在内存中设置视图时会调用此方法。完成后,您确定已设置插座,并且您可以执行其他初始化。
来自Apple doc:
在视图控制器加载其视图后调用此方法 层次结构到内存。无论是否调用此方法 视图层次结构是从nib文件加载或以编程方式创建的 在loadView方法中。您通常会覆盖此方法以执行 对从nib文件加载的视图进行额外的初始化。
换句话说:
- (void)viewDidLoad
{
[super viewDidLoad];
// additional initializations here
}
最后,关于applicationDidBecomeActive
方法(或代表,如果你想),调用它来让你的应用程序知道它从非活动状态转变为活动状态。
我建议您阅读UIApplicationDelegate和UIViewController类引用。
如果您只想验证序列调用,请覆盖方法并在其中放置NSLog
。
希望它有所帮助。