你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> iOS開發那些事–iOS視圖生命周期與視圖控制器關系

iOS開發那些事–iOS視圖生命周期與視圖控制器關系

編輯:關於IOS

iOS中視圖是一個應用的重要組成部分,功能的實現與其息息相關,而視圖控制器控制著視圖,其重要性在整個應用中不言而喻。

  視圖生命周期與視圖控制器關系   以視圖的5種狀態為基礎,我們來系統的了解一下視圖控制器的生命周期。在視圖不同的生命周期,視圖控制器會回調不同的方法。   1   viewDidLoad方法:視圖控制器已被實例化,在視圖被加載到內存中的時候調用該方法,這個時候視圖並未出現。在該方法中通常進行的是對所控制的視圖進行初始化處理。   視圖可見前後會調用viewWillAppear:方法和viewDidAppear:方法;視圖不可見前後會調用viewWillDisappear:方法和viewDidDisappear:方法。 4個方法調用父類相應的方法以實現其功能, 編碼時該方法的位置可根據實際情況做以調整,參見如下代碼:   [cpp]  -(void)viewWillAppear:(BOOL)animated      {      [super viewWillAppear:YES];      … …      }     -(void)viewWillAppear:(BOOL)animated   {   [super viewWillAppear:YES];   … …   }     viewDidLoad方法在應用運行的時候只調用一次,而這上述4個方法可以被反復調用多次,它們的使用很廣泛但同時也具有很強的技巧性。例如:有的應用會使用重力加速計,重力加速計會不斷輪詢設備以實時獲得設備在z軸、x軸和y軸方向的重力加速度。不斷的輪詢必然會耗費大量電能進而影響電池使用壽命,我們通過利用這4個方法適時地打開或者關閉重力加速計來達到節約電能的目的。怎麼使用這4個方法才能做到“適時”是一個值得思考的問題。   iOS系統在低內存時情況下會調用didReceiveMemoryWarning:和viewDidUnload:方法。iOS6之後就不再使用viewDidUnload:,而僅支持didReceiveMemoryWarning:。didReceiveMemoryWarning:方法的主要職能是釋放內存,包括視圖控制器中的一些成員變量和視圖的釋放。現舉例如下:   [cpp]  - (void)didReceiveMemoryWarning {      self.button = nil;   self.myStringD = nil;   [myStringC release];      [super didReceiveMemoryWarning];   }     - (void)didReceiveMemoryWarning {   self.button = nil; self.myStringD = nil; [myStringC release];   [super didReceiveMemoryWarning]; }  
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved