viewDidAppear viewDidDisappear viewDidDisappear viewWillDisappear viewDidLoad

didFinishLaunchingWithOptions入口类方法进去程序,我将ViewController作为根视图控制器,分别创建了两个VC一个带XB,另外一个不带XB

-(void)viewDidAppear:(BOOL)animated {

    [super viewDidAppear:animated];

    NSLog(@"------%s------",__FUNCTION__);

}

-(void)viewDidDisappear:(BOOL)animated {

    [super viewDidDisappear:animated];

    NSLog(@"------%s------",__FUNCTION__);

}

-(void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    NSLog(@"------%s------",__FUNCTION__);

}

-(void)viewWillDisappear:(BOOL)animated{

    [super viewWillDisappear:animated];

    NSLog(@"------%s------",__FUNCTION__);

}

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view from its nib.

    NSLog(@"---TonyVC%s---",__FUNCTION__);

}

 

ViewWillAppear和viewDidAppear是试图将要进行展示的时候调用,viewDidAppear是试图布局完成时进行调用

viewWillDisappear和viewDidDisappear是一个界面将要消失,也就是其生命周期@“结束的时候”进行调用。

 

下面是ViewController的视图显示情况

2015-07-29 15:06:16.885 TableViewDemo[51788:1620259] -------[ViewController viewDidLoad]------

2015-07-29 15:06:16.889 TableViewDemo[51788:1620259] -------[ViewController viewWillAppear:]------

2015-07-29 15:06:17.002 TableViewDemo[51788:1620259] -------[ViewController viewDidAppear:]------

根据打印出来的信息可以明显看出作为根视图VC 其加载顺序为viewDidLoad >viewWillAppear > viewDidAppear进行

再如,我如果由根VC Push到下一个VC(TonyVC)当中,TonyVC是怎么进行展示的,打印结果如下

 

 2015-07-29 15:21:12.362 TableViewDemo[51904:1627657] ---TonyVC-[TonyViewController viewDidLoad]---

2015-07-29 15:21:12.362 TableViewDemo[51904:1627657] -------[ViewController viewWillDisappear:]------

2015-07-29 15:21:12.363 TableViewDemo[51904:1627657] ---TonyVC-[TonyViewController viewWillAppear:]---

有意思的是这三个方法是首先进行加载,起码,我的视觉看不到VC的时候,才出现这三个方法,也就是说,TonyVC先调用viewDidLoad之后,上一个根VC才进行消失,其次才加载如下两个方法。下面两个方法,和上面两个方法有一丝丝迟钝

2015-07-29 15:21:12.881 TableViewDemo[51904:1627657] -------[ViewController viewDidDisappear:]------

2015-07-29 15:21:12.881 TableViewDemo[51904:1627657] ---TonyVC-[TonyViewController viewDidAppear:]---

TonyVC 是带XB的VC

 

 

由TonyVC 到 根VC时 则方法执行迅速如下

2015-07-29 15:14:55.098 TableViewDemo[51876:1625568] ---TonyVC-[TonyViewController viewWillDisappear:]---

2015-07-29 15:14:55.099 TableViewDemo[51876:1625568] -------[ViewController viewWillAppear:]------

上面两个方法先执行,还是如果看到界面之后执行下面两个方法

2015-07-29 15:14:55.602 TableViewDemo[51876:1625568] ---TonyVC-[TonyViewController viewDidDisappear:]---

2015-07-29 15:14:55.602 TableViewDemo[51876:1625568] -------[ViewController viewDidAppear:]------

 

由TonyVC到第三个VC是什么情况呢?第三个VC是不带XB的其方法执行顺序如下

2015-07-29 15:32:27.743 TableViewDemo[51942:1630877] TonyVC-[TonySecendViewController viewDidLoad]

2015-07-29 15:32:27.743 TableViewDemo[51942:1630877] ---TonyVC-[TonyViewController viewWillDisappear:]---

2015-07-29 15:32:27.744 TableViewDemo[51942:1630877] TonySecendVC-[TonySecendViewController viewWillAppear:]

这三个方法首先执行,接下来执行

2015-07-29 15:32:28.247 TableViewDemo[51942:1630877] ---TonyVC-[TonyViewController viewDidDisappear:]---

2015-07-29 15:32:28.247 TableViewDemo[51942:1630877] TonySecendVC-[TonySecendViewController viewDidAppear:]

TonySecendVCPush回去,的情况

2015-07-29 15:34:36.700 TableViewDemo[51942:1630877] TonySecendVC-[TonySecendViewController viewWillDisappear:]

2015-07-29 15:34:36.700 TableViewDemo[51942:1630877] ---TonyVC-[TonyViewController viewWillAppear:]---

其次为

2015-07-29 15:34:37.203 TableViewDemo[51942:1630877] TonySecendVC-[TonySecendViewController viewDidDisappear:]

2015-07-29 15:34:37.203 TableViewDemo[51942:1630877] ---TonyVC-[TonyViewController viewDidAppear:]---

 

 

 

 

 

posted on 2015-07-29 15:35  小小卖报家  阅读(317)  评论(0编辑  收藏  举报