UIViewController
/*知識(shí)點(diǎn)總結(jié):
1)創(chuàng)建視圖控制器類,設(shè)置window的根視圖控制器
2)視圖控制器跳轉(zhuǎn)的過程
3)找window的四種方法
*/
APPDelegate.m
//設(shè)置根視圖控制器
// UIViewController視圖控制器
//視圖的管理器,用來管理一個(gè)頁面視圖
//使用:新建一個(gè)視圖控制器類,繼承自UIViewController
// ???1,導(dǎo)入視圖控制器頭文件
// ???2,創(chuàng)建視圖控制器對(duì)象
ViewController *viewController = [[ViewController alloc] init];
// ???3,將視圖控制器對(duì)象設(shè)置為window的根視圖控制器
self.window.rootViewController= viewController;
//設(shè)置根視圖控制器會(huì)調(diào)用視圖控制器中的viewDidLoad方法
//代碼執(zhí)行的順序是:當(dāng)執(zhí)行到設(shè)置window根視圖控制器時(shí),會(huì)跳到視圖控制器里的viewDidLoad方法執(zhí)行,然后再跳回這個(gè)入口方法繼續(xù)執(zhí)行
視圖控制器跳轉(zhuǎn)
// ???1,導(dǎo)入頭文件
// ???2,創(chuàng)建視圖控制器對(duì)象
ViewControllerTwo *vc = [[ViewControllerTwo alloc] init];
// ???3,找window,不能重新創(chuàng)建window,因?yàn)橐粋€(gè)應(yīng)用中只能有一個(gè)window
UIWindow *window =self.view.window;
// ???4,設(shè)置為window的根視圖控制器
window.rootViewController= vc;
//viewDidLoad視圖已經(jīng)加載
- (void)viewDidLoad {
NSLog(@"viewDidLoad");
//self本類(ViewController)的對(duì)象
//super父類(UIViewController)的對(duì)象
//先加載父類視圖,確保子類視圖順利加載
[super viewDidLoad];
//視圖控制器在創(chuàng)建時(shí)會(huì)自動(dòng)生成一個(gè)view,作為視圖控制器的一個(gè)自帶屬性
//設(shè)置背景顏色
self.view.backgroundColor= [UIColorblueColor];
}
//系統(tǒng)的觸摸方法,當(dāng)手指觸摸到屏幕時(shí)調(diào)用
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
//1.導(dǎo)入頭文件delegate
//2.創(chuàng)建視圖控制器對(duì)象
ViewControllerTwo *vc = [[ViewControllerTwo alloc] init];
//3.找window,不能重新創(chuàng)建window,因?yàn)橐粋€(gè)只能有一個(gè)window
UIWindow *window =self.view.window;
//4.設(shè)置為window為的根視圖控制器
window.rootViewController= vc;
//上一句代碼把window的根視圖控制器換掉了,所以現(xiàn)在self.view已經(jīng)不在window上了,所以用self.view.window找不到window
//[self findWindow];
}
//找window
-(void)findWindow {
//方法一:
UIWindow *window1 =self.view.window;
//方法二(常用):
UIWindow*window2 = [UIApplicationsharedApplication].keyWindow;
// UIWindow *window2 = [[UIApplication sharedApplication] keyWindow];
//方法三:
UIWindow *window3 = [UIApplication sharedApplication].windows[0];
//方法四(最安全):
//找到應(yīng)用程序
UIApplication*app = [UIApplication sharedApplication];
//找到應(yīng)用程序的入口類
AppDelegate*delegate = app.delegate;
//找到入口類中的屬性window
UIWindow *window4 = delegate.window;
NSLog(@"window1 = %@",window1);
NSLog(@"window2 = %@",window2);
NSLog(@"window3 = %@",window3);
NSLog(@"window4 = %@",window4);
}