- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
viewDidLoad
viewWillAppear
viewWillDisapppear
?
《iOS編程》P137
關于視圖的初始化代碼不能寫在視圖控制器的初始化(1),原因如下:為了實現視圖延遲加載,在initWithNibName:bundle:中不應該訪問view或view的子視圖,而應該放在viewDidLoad中;
viewDidLoad:這個方法是用于確認視圖已經加載,該方法會在視圖控制器加載完NIB文件之后被調用;
viewWillAppear:該方法會在視圖控制器的view添加到應用窗口之前被調用;
這兩個方法的區別是:如果只需要在啟動后設置一次視圖對象,就選擇viewDidLoad;如果用戶每次看到視圖控制器的view時都需要對其進行設置,則選擇viewWillAppear;
P205
當 UINavigationController 對象切換視圖時,其包含的兩個 UIViewController 對象分別收到 viewWillDisappear: 消息和 viewWillAppear:消息;
?