1、App、App與ViewController
- 啟動App
----didFinishLaunchingWithOptions
----viewDidLoad
----viewWillAppear
----viewWillLayoutSubviews
----viewDidLayoutSubViews
----viewDidAppear
----applicationDidBecomeActive
總結(jié):
1,整體順序是:app加載 → 根視圖控制器加載 → app活躍
2,注意:app活躍是發(fā)生在根視圖控制器DidAppear之后的
3,注意:在app的啟動過程中是沒有將要進入前臺(applicationWillEnterForeground)這個步驟的
- 單擊Home鍵,app進入后臺/ app鎖屏
----- applicationWillResignActive
----- applicationDidEnterBackground
總結(jié):
1,整體順序是:app將不活躍 → app進入后臺
2,注意:在app進入后臺的過程中,ViewController是不參與其中的,也就是說當前屏幕上顯示的ViewController并不會調(diào)用視圖控制器將要消失(viewWillDisappear) 和 視圖控制器已經(jīng)消失(viewDidDisappear)
- 點擊APP桌面圖標,app進入前臺/app解鎖
---- applicationWillEnterForeground
---- applicationDidBecomeActive
總結(jié):
1,整體順序是:app將要進入前臺 → APP活躍
2,注意:跟app進入后臺一樣,在該過程中,ViewController是不參與其中的,在屏幕上出現(xiàn)的ViewController并不會調(diào)用視圖控制器將要顯示(viewWillAppear) 和 視圖控制器已經(jīng)顯示(viewDidAppear)
- app銷毀
---- applicationWillResignActive
---- applicationDidEnterBackground
---- applicationWillTerminate
總結(jié):
1,整體順序是:app將不活躍 → app進入后臺 → app將要銷毀
2,注意:這個過程ViewController同樣是不參與的
- 雙擊Home鍵,由app進入app卡片列表
---- applicationWillResignActive
總結(jié):
1,在app進入app卡片列表的過程中,僅有一步被調(diào)用:app將不活躍(applicationWillResignActive)
2,注意:如果此時,用戶在app卡片列表中選擇了其他app,接下來會調(diào)用:app進入后臺(applicationDidEnterBackground)
3,注意:如果此時,用戶點擊Home鍵,app由app卡片列表重新回到前臺,接下來會調(diào)用:app活躍(applicationDidBecomeActive),要注意的是在這個過程中并不會調(diào)用app將要進入前臺(applicationWillEnterForeground)
2. ViewController與ViewController
- vc1 PushTo / PresentTo vc2
----vc2----- viewDidLoad
----vc1----- viewWillDisappear
----vc2----- viewWillAppear
----vc2----- viewWillLayoutSubviews
----vc2----- viewDidLayoutSubviews
----vc2----- viewDidAppear
----vc1----- viewDidDisappear
----vc1----- presentViewCompleted (optional)
//[self dismissViewControllerAnimated:YES completion:^{
// NSLog(@"-----vc2-----dismissViewControllerCompleted");
//}];
- vc2 PopTo / DismissTo vc1
----vc2----- viewWillDisappear
----vc1----- viewWillAppear
----vc1----- viewDidAppear
----vc2----- viewDidDisappear
----vc2----- dismissViewControllerCompleted (optional)
//[self dismissViewControllerAnimated:YES completion:^{
// NSLog(@"-----vc2-----dismissViewControllerCompleted");
//}];
----vc2----- dealloc