此文學習來源為: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