iOS學習之視圖加載過程中會觸發的方法(loadView/viewDidLoad/didReceiveMemoryWarning)


1.loadView

這是視圖控制器用來加載根視圖的方法;

如果需要將自定義的視圖作為根視圖,則不需要調用父類對該方法的實現([super loadView]);直接將自定義視圖通過self.view定義為視圖控制器的根視圖;

自定義視圖中的簡單響應事件也應由視圖控制器來進行處理,寫在此方法內;

2.viewDIdLoad

當視圖控制器的根視圖加載完成之后觸發該方法;(也就是loadView調用完成之后會立即調用該方法);

需要調用父類對該方法的實現;

該方法可以對根視圖進行簡單的一些設置,比如背景顏色等等;

3.viewWillAppear:(BOOL)animated;  //當視圖控制器的根視圖將要顯示時觸發;

4.viewDidAppear:(BOOL)animated;  //當視圖控制器的根視圖顯示時觸發;

5.viewWillDisappear:(BOOL)animated;  //當視圖控制器的根視圖將要消失時觸發;

6.viewDidDisappear:(BOOL)animated;  //當視圖控制器的根視圖消失時觸發;

7.didReceiveMemoryWarning;//當收到內存警告時觸發, 此時需要釋放掉暫時不使用的資源,以及可重建對象;

1 - (void)didReceiveMemoryWarning {
2     [super didReceiveMemoryWarning];
3     if ([self isViewLoaded] && !self.view.window) {
4         self.view = nil;
5     }
6 }
7 //[self isViewLoaded] 看視圖是否已經加載了
8 //self.view.window 看根視圖有沒有在window上展示

 

#pragma mark -- 和屏幕旋轉相關的方法

8.設置當設備發生旋轉時,當前界面是否發生變化,支持旋轉

- (BOOL)shouldAutorotate {

    return YES;

}

9.設置當前界面支持的旋轉的方向. 必須要依賴於當前應用程序支持的方向;

- (NSUInteger)supportedInterfaceOrientations {

    return UIInterfaceOrientationMaskAll;//支持所有方向

}

10.當屏幕旋轉時觸發,iOS8之后有效

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {

    //size 表示旋轉之后的屏幕的尺寸;

    NSLog(@"%@",NSStringFromCGSize(size)); //輸出此時的屏幕尺寸;

}

 

關於調用父類的方法:

//父類對該方法的實現,可以用來幫助我們對視圖進行一些初始化(有些初始化工作我們是不知道的,也看不到,所以一定要調用);

//當重寫從父類繼承過來的方法時,如果不知道父類對該方法是如何實現的,記得要使用super調用該方法的實現;

關於方法中的[super xxx]調用父類的方法,如果不需要額外添加內容,有參數的直接return YES就行了.

 

//補充一個:

-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;

這是視圖控制器的指定初始化方法,無論調用哪個方法,改初始化方法都會被觸發;

-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        //完成本類獨有的初始化操作.
    }
    return self;
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM