1滑进、UIViewController(控制器)以及與UIView的關(guān)系
?2犀忱、AppDelegate與控制器之間的跳轉(zhuǎn)
?3、UIViewController的生命周期
?4扶关、UINavigationController
?#pragma --------------------
?1阴汇、UIViewController(控制器)以及與UIView的關(guān)系
?只能有一個(gè)window但是可以有多個(gè)控制器,可以通過(guò)控制器設(shè)置首頁(yè)
?*UIViewController的概念:ios頂層視圖的載體及控制器
?*作用:
?1节槐、用控制器實(shí)現(xiàn)不同的界面
?2搀庶、控制用戶與程序界面的交互
?3拐纱、管理UIView的生命周期--自帶的View
?4、管理資源的加載與釋放
?*與UIView的關(guān)系:UIView工作在第一線哥倔,展示表現(xiàn)的內(nèi)容秸架,并接受用戶的交互。而控制器相當(dāng)于一個(gè)導(dǎo)演咆蒿,按照計(jì)劃編排屬下UIView以何種方式展現(xiàn)东抹。
?*系統(tǒng)默認(rèn)的首頁(yè)就是系統(tǒng)自帶的UIViewController里面的內(nèi)容。
?#pragma --------------------
?2沃测、AppDelegate與控制器之間的跳轉(zhuǎn)
?自建一個(gè)控制器設(shè)置首頁(yè)
?第一個(gè)頁(yè)面跳轉(zhuǎn)第二個(gè)頁(yè)面:??
?第一個(gè)頁(yè)面→
[btn addTarget:selfaction:@selector(changePage) forControlEvents:UIControlEventTouchUpInside];
- (void)changePage{
?第二個(gè)頁(yè)面名字?*customOne = [[第二個(gè)頁(yè)面名字alloc]init];
[self?presentViewController:customOne animated:YES?completion:nil];
?}
?***注意:在第一個(gè)頁(yè)面調(diào)用第二個(gè)頁(yè)面名字之前記的.h文件要注明
?第二個(gè)頁(yè)面→
[btn addTarget:selfaction:@selector(changePage) forControlEvents:UIControlEventTouchUpInside];
- (void)changePage{
?*第一種方法
?第一個(gè)頁(yè)面名字?*customOne = [[第一個(gè)頁(yè)面名字?alloc]init];
[self?presentViewController:customOne animated:YES?completion:nil];
?*第二種方法
[self?dismissViewControllerAnimated:YEScompletion:nil];
?}
?#pragma --------------------
?3缭黔、UIViewController的生命周期
?*控制器初始化時(shí)調(diào)用
?*id能返回任何類型對(duì)象或數(shù)據(jù)
?*instancetype只能返回自身所在類創(chuàng)建的對(duì)象
?- (instancetype)init{
self?= [super?init];
if?(self) {
?}
?return self;
?}
?*控制器自帶的view加載完畢以后調(diào)用這個(gè)方法。
- (void)viewDidLoad{
?*子類會(huì)使用父類里面的一些東西蒂破,通過(guò)這種方式將使用到的父類里面的東西給實(shí)例化馏谨。
[super?viewDidLoad];
?}
?*控制器自帶view將要顯示時(shí)調(diào)用
- (void)viewWillAppear:(BOOL)animated{
[super?viewWillAppear:animated];
?}
?*控制器自帶view顯示過(guò)后調(diào)用
- (void)viewDidAppear:(BOOL)animated{
[super?viewDidAppear:animated];
?}
?*控制器自帶view將要消失時(shí)調(diào)用
- (void)viewWillDisappear:(BOOL)animated{
[super?viewWillDisappear:animated];
?}
?*控制器自帶view消失過(guò)后調(diào)用
- (void)viewDidDisappear:(BOOL)animated{
[super?viewDidDisappear:animated];
?}
?*當(dāng)應(yīng)用程序超過(guò)系統(tǒng)內(nèi)存時(shí)候報(bào)內(nèi)存警告時(shí)調(diào)用,要及時(shí)在這里對(duì)資源進(jìn)行釋放附迷。
- (void)didReceiveMemoryWarning{
[super?didReceiveMemoryWarning];
?}
#pragma --------------------
?4惧互、UINavigationController
?*普通控制器的跳轉(zhuǎn):present和dismiss是一對(duì)兒。跳轉(zhuǎn)回來(lái)的時(shí)候不用再告訴系統(tǒng)要返回到哪里喇伯,因?yàn)橄到y(tǒng)知道要返回到哪里
?*導(dǎo)航控制器的跳轉(zhuǎn):push和pop是一對(duì)兒壹哺。跳轉(zhuǎn)回來(lái)的時(shí)候不用再告訴系統(tǒng)要返回到哪里,因?yàn)橄到y(tǒng)知道要返回到哪里·
?*給導(dǎo)航欄設(shè)置顏色
self.navigationBar.backgroundColor = [UIColor redColor];
?*給導(dǎo)航欄設(shè)置背景顏色
[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"43.jpg"] forBarMetrics:UIBarMetricsDefault];
//創(chuàng)建一個(gè)控制器對(duì)象
?CustomViewController?*customVC = [[CustomViewController?alloc]init];
?//給window設(shè)置一個(gè)跟控制器艘刚,這個(gè)跟控制器便是應(yīng)用程序的首頁(yè)。
?self.window.rootViewController?= customVC;
?把導(dǎo)航控制器設(shè)置為跟控制器,它代替了原本的window截珍,就需要在導(dǎo)航控制器上面設(shè)置一個(gè)跟控制器
?導(dǎo)航控制器由兩部分組成
?1.導(dǎo)航欄攀甚,他是導(dǎo)航控制器自帶的
?2.跟控制器,需要在初始化的時(shí)候手動(dòng)添加上去
在AppDelegate中設(shè)置哪個(gè)控制器是導(dǎo)航控制器的顯示
CustomViewController?*customVC = [[CustomViewController?alloc]init];
?CustomNavigationController?*customNav = [[CustomNavigationControlleralloc]initWithRootViewController:customVC];
?self.window.rootViewController?= customNav;