你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS7技巧 >> ios開ViewController的生命周期分析和使用

ios開ViewController的生命周期分析和使用

編輯:IOS7技巧
在ios開發給必須要十分清楚ViewController的生命周期,要不在出現一些問題時會不知所措,現在就整理一下這個知識點。

ViewController加載View


從Storyboards中加載的時候,會調用initWithCode,如果不存在則調用init。之後對裡面的每個對象調用awakeFromNib方法。

從內存中alloc出來的情況下,調init方法。

ViewController查找與其關聯的view,其順序是:

先判斷子類是否重寫了loadView,如果有直接調用。之後調viewDidLoad完成View的加載。

如果是外部通過調用initWithNibName:bundle指定nib文件名的話,ViewController記載此nib來創建View。

如果initWithNibName:bundle的name參數為nil,則ViewController會通過以下兩個步驟找到與其關聯的nib。

如果類名包含Controller,例如ViewController的類名是MyViewController,則查找是否存在MyView.nib;

找跟ViewController類名一樣的文件,例如MyViewController,則查找是否存在MyViewController.nib。

如果子類沒有重寫的loadView,則ViewController會從StroyBoards中找或者調用其默認的loadView,默認的loadView返回一個空白的UIView對象。

注意第一步

ViewController是判斷子類是否重寫了loadView,而不是判斷調用子類的loadView之後ViewController的View是否為空。就是說,如果子類重寫了loadView的話,不管子類在loadView裡面能否獲取到View,ViewController都會直接調viewDidLoad完成View的加載。


ViewController生命周期函數

啟動順序

initWithCoder

如果不存在則調用init

loadView //如果說你進行了重寫,會在這裡調用,這一步可以參考下文


viewDidLoad

view剛被load完,且已經連接到IBoutlet後,這裡放置需要放到初始化裡去完成事情。[此時view還沒有被顯示]

viewWillAppear

當view即將被顯示時調用。

他適合做兩種事情:

1.最後時刻加載一些高開銷的操作

2.修改幾何特性

說明:

[如果需要調整view的幾何特性[旋轉之後 變化之類的巴拉巴拉] 在這裡書寫]。

如果是長時間的操作 則最好在此開個現成操作。

viewWillLayoutSubviews

即將

viewDidLayoutSubviews

view的子view的frame變化時[如:旋轉屏幕]

經常用此方法[did]來處理旋轉後的布局問題。

viewDidAppear

剛顯示

ios開ViewController的生命周期分析和使用

查看原圖

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved