UIViewController

UIViewController

/*知识点总结:

1)创建视图控制器类,设置window的根视图控制器

2)视图控制器跳转的过程

3)找window的四种方法

*/

APPDelegate.m

//设置根视图控制器

// UIViewController视图控制器

//视图的管理器,用来管理一个页面视图

//使用:新建一个视图控制器类,继承自UIViewController

//    1,导入视图控制器头文件

//    2,创建视图控制器对象

ViewController *viewController = [[ViewController alloc] init];

//    3,将视图控制器对象设置为window的根视图控制器

self.window.rootViewController= viewController;

//设置根视图控制器会调用视图控制器中的viewDidLoad方法

//代码执行的顺序是:当执行到设置window根视图控制器时,会跳到视图控制器里的viewDidLoad方法执行,然后再跳回这个入口方法继续执行

视图控制器跳转

//    1,导入头文件

//    2,创建视图控制器对象

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

//    3,找window,不能重新创建window,因为一个应用中只能有一个window

UIWindow *window =self.view.window;

//    4,设置为window的根视图控制器

window.rootViewController= vc;


//viewDidLoad视图已经加载

- (void)viewDidLoad {

NSLog(@"viewDidLoad");

//self本类(ViewController)的对象

//super父类(UIViewController)的对象

//先加载父类视图,确保子类视图顺利加载

[super viewDidLoad];

//视图控制器在创建时会自动生成一个view,作为视图控制器的一个自带属性

//设置背景颜色
self.view.backgroundColor= [UIColorblueColor];

}

//系统的触摸方法,当手指触摸到屏幕时调用

- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {

//1.导入头文件delegate

//2.创建视图控制器对象

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

//3.找window,不能重新创建window,因为一个只能有一个window

UIWindow *window =self.view.window;

//4.设置为window为的根视图控制器

window.rootViewController= vc;

//上一句代码把window的根视图控制器换掉了,所以现在self.view已经不在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];

//方法四(最安全):

//找到应用程序
UIApplication*app = [UIApplication sharedApplication];

//找到应用程序的入口类
AppDelegate*delegate = app.delegate;

//找到入口类中的属性window

UIWindow *window4 = delegate.window;

NSLog(@"window1 = %@",window1);

NSLog(@"window2 = %@",window2);

NSLog(@"window3 = %@",window3);

NSLog(@"window4 = %@",window4);

}

你可能感兴趣的:(UIViewController)