1

方法applicationDidBecomeActiveloadViewviewDidLoad将在 iOS 应用程序中的适当时间被调用。对于loadViewviewDidLoad,它看起来是:

-(void) someMethod {

    //...

    [viewController loadView];
    [viewController viewDidLoad];

}

他们是这样被调用的吗?调用它们的类是什么?(有没有源代码可以显示一个应用程序的启动流程?很多时候,我们只能看到头文件而看不到源代码)。

4

1 回答 1

4

如果我很好地理解了您的问题,您想了解应用程序生命周期,这是真的吗?

好吧,我想苹果没有提供可以向您展示它的外观的源代码。

如果您想知道应用程序启动时会发生什么情况,我建议您阅读Olebapp-launch-sequence-ios-revisited。这是一个非常好的帖子。

关于您编写​​的方法,这些方法不应手动调用。是框架(通过 iOS)为您调用它们。

方法loadViewviewDidLoad是在UIViewController生命周期中调用的方法。

loadView当您无法创建故事板或 nib 文件时使用(覆盖) 。通过这种方式,您可以为您提供UIViewController一个全新的视角。来自苹果文档:

如果您无法在情节提要或 nib 文件中定义视图,请覆盖 loadView 方法以手动实例化视图层次结构并将其分配给视图属性。

换句话说:

- (void)loadView
{  
   UIView* myCustomView = ... // create the view here
   self.view = myCustomView;
}

关于该viewDidLoad方法,当在内存中设置视图时调用此方法。完成后,您可以确定已设置出口,并且您可以执行其他初始化。

来自苹果文档:

在视图控制器将其视图层次结构加载到内存后调用此方法。无论视图层次结构是从 nib 文件加载还是在 loadView 方法中以编程方式创建,都会调用此方法。您通常覆盖此方法以对从 nib 文件加载的视图执行额外的初始化。

换句话说:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // additional initializations here
}

最后,关于applicationDidBecomeActive方法(或委托,如果需要),调用它是为了让您的应用程序知道它从非活动状态移动到活动状态。

我建议您阅读UIApplicationDelegateUIViewController类参考。

如果您想简单地验证序列调用,请覆盖方法并放在NSLog那里。

希望能帮助到你。

于 2012-05-20T14:26:14.050 回答