viewController生命周期和view加载顺序

2017-02-24  本文已影响43人  alige

viewController生命周期:


20130614155652265.jpeg

-ps:图片源自网络

view的加载顺序知识点:

1,控制器的view是延迟加载的,用到时再加载

2,可用isViewLoaded方法来判断一个控制器的view是否已经被加载

3,控制器的view加载后就会调用viewDidload

-注意:如果没有指定nibName,而且没有重写控制器的loadVIew,控制器的类名必须以Controller结尾,才会去找XXXview.xib,接着找XXXController.xib

调用顺序
loadView->viewDidLoad->viewWillAppear->viewDidAppear->viewWillDisappear->viewDidDisappear ->didReceiveMemeoryWarining->viewWillUnload->viewDidUnload
1、有loadView方法,就加载loadView里的视图view,这个方法就是用来自定义视图的。PS:在这个方法中不得使用view的getter方法,但是可以使用setter方法,因为view也是用到时才加载的,所以用getter会重新调用这个loadView造成死循环。

- (void)loadView
{
   //[super loadView];自定义view时不要调用这个方法
   UIView *myView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    myView.backgroundColor = [UIColor purpleColor];
    //myView.frame = self.view.frame;不可这样写
    self.view = vcView;
}

2、如果子类没有实现loadView,在创建控制器时,分两种创建方法:

3、如果指定的xib不存在则crash,若没有指定xib,即加载xib为nil,此时的顺序如下:

alpha:0-0.01,完全透明,可以穿透
alpha:0.01-1.0,不能穿透

推荐一篇比较介绍的比较完整的:
链接http://www.jianshu.com/p/23a83706d773

上一篇 下一篇

猜你喜欢

热点阅读