awakeFromNib
創建控制器并勾選xib時不會進awakeFromNib,只有在創建view時會進awakeFromNib
awakeFromNib 從xib或者storyboard加載完畢就會調用
awakeFromNib和viewDidLoad的區別是awakeFromNib在ViewDidLoad之前執行,如果view想改變自己的顏色或者位置,則在awakeFromNib中設置,因為view被load之后再改就來不及了,所以只能在view被load之前進行設置。
initWithCoder 是當從nib文件中加載對象的時候會調用,比如你的view來自nib那么就會調用這個view的這個函數。(由框架調用)
initWithFrame (是由用戶調用,來初始化對象的)
initWithNibName方法:是延遲加載,這個View上的控件是 nil 的,只有到 需要顯示時,才會不是 nil,初始化UIViewController
loadNibNamed方法:即時加載,用該方法加載的xib對象中的各個元素都已經存在。
- (void)viewWillAppear:(BOOL)animated
{
NSLog(@"viewWillAppear");
}
- (void)viewDidAppear:(BOOL)animated
-(void)viewWillLayoutSubviews
view即將布局其Subviews。比如view的bounds改變了(例如狀態欄從不顯示到顯示,視圖方向變化),要調整Subviews的位置,在調整之前要做的一些工作就可以在該方法中實現。
-(void)viewDidLayoutSubviews
view已經布局其Subviews。比如view的bounds改變了(例如狀態欄從不顯示到顯示,視圖方向變化),已經調整Subviews的位置,在調整完成之后要做的一些工作就可以在該方法中實現。
-(void)viewWillDisappear:(BOOL)animated
view即將superView中移除,移除動畫切換之后調用,此時還沒調用removeFromSuperview。
-(void)viewDidDisappear:(BOOL)animated
view從superView中移除,移除動畫切換之后調用,此時已調用removeFromSuperview。
-(void)viewWillUnload
{
NSLog(@"viewWillUnload");
}
-(void)viewDidUnload
{
NSLog(@"viewDidUnload");
}
參考:
http://blog.csdn.net/dizzthxl/article/details/14170047