IOS開發之XCode學習009:UIViewController使用


此文學習來源為:http://study.163.com/course/introduction/1002858003.htm

 

此工程文件實現功能:

通過點擊屏幕事件,調用ViewController相關生命周期函數(viewWillAppear、viewWillDisappear、viewDidDisappear、viewDidAppear)

todo...

遇到點小Bug

1、viewDidLoad方法被多次調用

2、當每次點擊橘色屏幕時,調用了viewWillAppear和viewDidAppear方法

暫時還不知道原因。。。

 

===========================ViewController.m腳本==============================

#import "ViewController.h"

//引入新創建的視圖控制器(繼承於ViewController)

#import "ViewC02.h"

 

//當屏幕被點擊時,調用此函數

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

    //創建視圖控制器

    ViewC02* vc = [[ViewC02 alloc] init];

    //顯示一個新的視圖控制器到屏幕上

    //P1:新的視圖控制器對象

    //P2:是否使用動畫切換效果

    //P3:切換結束后功能調用,不需要傳nil值即可

    [self presentViewController:vc animated:YES completion:nil];

}

 

//第一次程序加載視圖時調用

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    self.view.backgroundColor = [UIColor blueColor];

    

    NSLog(@"viewDidLoad!第一次加載視圖!");

}

 

//當視圖控制器的視圖即將顯示時,調用此函數

//視圖分為:1、顯示前 2、正在處於顯示狀態 3、已經被隱藏

//參數:表示是否用動畫切換后顯示

//每一次視圖要顯示時都會調用

-(void) viewWillAppear:(BOOL)animated

{

    NSLog(@"viewWillAppear,視圖即將顯示!");

}

 

//當視圖即將消失時,調用此函數

//參數:表示是否用動畫切換后消失

//當前的狀態:視圖還是顯示在屏幕上的

-(void) viewWillDisappear:(BOOL)animated

{

    NSLog(@"viewWillDisappear,視圖即將消失!");

}

 

//當視圖已經顯示到屏幕后的瞬間調用此函數

//參數:表示是否用動畫切換顯示的

//當前狀態:已經顯示到屏幕上了

-(void) viewDidAppear:(BOOL)animated

{

    NSLog(@"viewDidAppear,視圖已經顯示!");

}

 

//當前視圖已經從屏幕消失

//參數:表示是否用動畫切換消失的

//當前狀態:視圖已經從屏幕上消失

-(void)viewDidDisappear:(BOOL)animated

{

    NSLog(@"viewDidDisappear,視圖已經消失!");

}

 

//內存過低警告接收函數

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

@end

 

===========================ViewC02.m腳本==============================

創建新的視圖控制器:

File-->New-->File(快捷鍵command + N),點擊,選擇ios/Source/Cocoa Touch Class,Next,然后Subclas of選擇ViewController,Class取名ViewC02,Create。 

 

- (void)viewDidLoad {

    [super viewDidLoad];

    //控制器二的顏色為橙色

    self.view.backgroundColor = [UIColor orangeColor];

}

 

//點擊當前控制器二的界面屏幕時

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

    //使當前的控制器消失掉

    //P1:是否使用動畫切換效果

    //P2:切換結束后功能調用block塊,不需要傳nil值即可

    [self dismissViewControllerAnimated:YES completion:nil];

}

 

學習總結:

  • 重點:UIViewController的界面切換
  • 難點:UIViewController的生命周期

源碼鏈接地址:https://pan.baidu.com/s/1yrOLXZZeu9MiOWtMq5-EGA  密碼:7t1l


免責聲明!

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



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