//所謂這裏的生命週期,指視圖控制被加載後,首先調用的方法,其次調用的方法,到銷燬時調用的方法
app
-(void)loadView;//view 出現以前 -(void)viewWillAppear:(BOOL)animated;//當view將要出現的時候 -(void)viewDidAppear:(BOOL)animated;//view 已經顯示了 -(void)viewWillDisappear:(BOOL)animated;//view即將消失 -(void)viewDidDisappear:(BOOL)animated//view已經消失 - (void)viewDidLoad;//view出現 //受到內存警告 程序內存 不夠的時候 會調用 這個方法 請檢查程序內存是否泄漏 //有多是程序問題 佔用內存太多 釋放一些資源 若是釋放以後 仍是有內存警告 //那就是 程序問題 //通常 程序 內存佔用都在50M左右 有地圖的可能會變大100左右 //模擬內存警告 點擊 測試機 hardware -->S..M..W.. // - (void)didReceiveMemoryWarning;
一段代碼:
ide
#import "RootViewController.h" #import "SecondViewController.h" #define kDebugMethod NSLog(@"%@", NSStringFromSelector(_cmd)) @interface RootViewController () @end @implementation RootViewController //當view nil爲調用loadView -(void)loadView { [super loadView]; kDebugMethod; } //是當咱們的View加載完成 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [self createButton]; kDebugMethod; } //這個是當咱們的View將要出現的時候 -(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; kDebugMethod; } //咱們view的已經顯示了 -(void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; kDebugMethod; } //咱們的View將要消失的時候 -(void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; kDebugMethod; } //咱們的view已經消失了 -(void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; kDebugMethod; } //收到內存警告, //當咱們的程序內存吃緊的時候,會調用這個函數 //通常狀況下,若是調了這個函數,請檢查大家的程序的內存是否泄露,就有多是咱們程序問題,佔用內存太多了 //釋一些資源,若是釋放一些沒必要要的資源後,仍是有內存警告,那就是真的是咱們的程序有問題 - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. kDebugMethod; } /* #pragma mark - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller. } */ -(void)createButton { UIButton *btn=[UIButton buttonWithType:UIButtonTypeContactAdd]; [btn setFrame:CGRectMake(50, 50, 80, 40)]; [btn addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchUpInside]; // int nCount=0; // if (nCount=5) { // // } [self.view addSubview:btn]; } -(void)onClick:(UIButton*)btn { SecondViewController *second=[[SecondViewController alloc] init]; //推動去第二個Contorller //第一個參數是咱們將推動去視圖控制器的對象 //第二個是BOOL,表示咱們是否顯示動畫 //第三個參數是block,完成後,推動去以後 [self presentViewController:second animated:YES completion:^{ NSLog(@"已經進入到第二個視圖控制器"); }]; [second release]; } @end
最後 再附上一張英文的圖片解釋函數