本節(jié)學(xué)習(xí)內(nèi)容:
1.UIViewController的概念
2.UIViewController的屬性
3.UIViewController的基本用法
4.UIKit框架代碼介紹
5.UIViewController的生命周期高級(jí)
6.UIViewcontroller的界面切換
地址:項(xiàng)目名稱》Supporting Files>main.m
#import<UIKit/UIKit>;
#import"AppDelegate.h";
//整個(gè)app程序的主函數(shù)婿斥,入口函數(shù)
init main(int argc,char * argv[]){
@autoreleasepool{
//UIApplicationMain:UIKit框架結(jié)果的啟動(dòng)函數(shù)
//參數(shù)一:agrc,啟動(dòng)時(shí)帶有參數(shù)的個(gè)數(shù)
//參數(shù)二:argv,參數(shù)列表
//參數(shù)三:要求傳入主框架類類名,如果參數(shù)為nil涵但,系統(tǒng)自動(dòng)用默認(rèn)框架類做為主框架類
//參數(shù)四:NSStringFromClass,主框架的代理類
return UIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegate class]));
}
}
【AppDelegate.m】
#import"AppDelegate.h";
#import"ViewController.h";
-(Bool)application:(UIApplication *)application didFinshLaunchingWithOptions:(NSDictionary *)launchOptions{
//創(chuàng)建一個(gè)window對(duì)象
//屬于AppDelegate的屬性
//UIScreen:表示屏幕硬件類驯绎,mainScreen:獲得主屏幕信息
//bounds當(dāng)前手機(jī)屏幕的大小尺寸
self.window=[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//創(chuàng)建視圖控制對(duì)像
viewController* vcRoot=[[viewController alloc]init];
//對(duì)窗口的根視圖控制器進(jìn)入賦值勒叠,整UIKit框架中只有一個(gè)根視圖控制器恭理,屬于window的屬性
//視圖控制器用來管理界面和處理界面的邏輯類對(duì)象
//程序啟動(dòng)前必須對(duì)根視圖控制器賦值
self.window.rootViewController=vcRoot;
//將window做為主視圖并且顯示出來
[self.window makeKeyAndVisible];
return YES;
}
【ViewController.h】
#import<UIKit/UIkit.h>
//所有的控制器都需要自定義來完成
//繼承于官方的UIViewController
@interface viewController:UIViewController
@end
【UIViewController.m】
#import "ViewController.h";
//當(dāng)視圖控制器第一次被加載顯示視圖時(shí)去件,調(diào)用此函數(shù)
//布局初始化視圖來使用感耙,初始化資源使用
-(void)viewDidLoad{
//調(diào)用父類視圖
[super viewDidLoad]
UIView *view=[[UIView allic]init];
view.frame=CGRectMAke(100,100,100,200);
//將視圖添加到當(dāng)前控制器視圖上
[self.view addSubview:view];
//當(dāng)前view顏色
view.backgroundColor=[UIColor orangColor];
//視圖控制器背景顏色
self.view.backgroundColor=[UIColor blueColor];
}
//當(dāng)視圖控制器的視圖即將顯示時(shí)荠医,調(diào)用此函數(shù)
//視圖分類:1.顯示前吁脱,2:正在處于顯示狀態(tài) 3:已經(jīng)被隱藏
//參數(shù):表示是否用動(dòng)畫切換后顯示
//第一次視圖顯示時(shí)都要被調(diào)用
-(void)viewWillAppear:(Bool)animated{
NSLog(@"viewWillAppea,視圖即將顯示!");
}
//當(dāng)視圖控制器的視圖即將消失時(shí)彬向,調(diào)用此函數(shù)
//參數(shù):表示是否用動(dòng)畫切換后消失
//當(dāng)前的狀態(tài):視圖還是顯示在屏幕上的
-(void)viewWillDisapper:(Bool)animated{
NSLog(@"視圖即將消失兼贡!");
}
//當(dāng)視圖已經(jīng)顯示到屏幕后的瞬間調(diào)用此函數(shù)
//參數(shù):表示是否用動(dòng)畫切換顯示的
//當(dāng)前狀態(tài)已經(jīng)顯示到屏幕上了
-(void)viewDidAppear:(Bool)animated{
}
//當(dāng)前視圖已從屏幕上消失
//參數(shù):表示是否用畫切換顯示的
//當(dāng)前狀態(tài)當(dāng)前視圖控制視圖已經(jīng)消失從屏莫上
-(void)viewDidDisappear:(BOOL)animated{
}
//當(dāng)系統(tǒng)內(nèi)存過低時(shí),會(huì)發(fā)起警告信息娃胆,調(diào)用此函數(shù)
-(void)didReceiveMemoryWarning{
[super didReceviewMemoryWarning];
}
創(chuàng)建一個(gè)新個(gè)viewController 名稱 viewC2遍希,并繼承UIViewController
【viewC2.m】
#import "viewC2"
#import"UIViewcontroler";
@interface viewC2()
@end
@implementation viewc2
//當(dāng)屏幕被點(diǎn)擊時(shí),調(diào)用此函數(shù)
-(void)tochesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
ViewC2 *vc=[[ViewC2 alloc]init];
//顯示一個(gè)新的視圖控制器到屏幕上
//P1:新的視圖控制器對(duì)象
//P2:使用動(dòng)畫切換動(dòng)畫效果
//P3:切換結(jié)束后功能調(diào)用里烦,不需求傳nil值
[self presentViewController:vc animated:YES completion:nil];
}
//第一次程序加載視圖時(shí)調(diào)用
-(void)viewDidLoad{
[super viewDidLoad]
self.view.backGrounColor=[UIColor orangeColor];
}
-(void)tochesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
//使用當(dāng)前的控制器消失掉
//P1:是否有動(dòng)畫效果
//P2:結(jié)束后是否調(diào)用功能block塊
[self dimissViewControllerAnimated:YES completion:nil];
}