创建控制器 方法 1
#pragma mark - 方法 1 :使用class创建控制器
//1.实例化一个window
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor redColor];
//2.实例化控制器
ViewController *controller = [[ViewController alloc]init];
//3.设置controller为window的根控制器
self.window.rootViewController = controller;
//4.让window成为主窗口并可见
[self.window makeKeyAndVisible];
//添加一个view
UIView *tempView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
//设置颜色
tempView.backgroundColor = [UIColor blueColor];
//添加到controller
[self.window addSubview:tempView];
创建控制器 方法 2
#pragma mark - 方法 2 :加载storyboard创建控制器 (storyboard中只有一个控制器)
//1.实例化一个window
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//3.实例化一个storyboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
//4.取出storyboard 中的控制器
UIViewController *controller = [storyboard instantiateInitialViewController];
//5.设置controller成为window的根控制器
self.window.rootViewController = controller;
//6.让window成为主窗口并可见
[self.window makeKeyAndVisible];
创建控制器 方法 3
#pragma mark - 方法 3 :使用storyboard ID 创建控制器 (在storyboard中有多个控制器,根据各自的ID来调用)
//1.实例化一个window
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//2.实例化storyboard对象
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
//3.根据storyboard ID 选择控制器
UIViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
//4.设置controller成为window的根控制器
self.window.rootViewController = controller;
//5.让window成为主窗口并可见
[self.window makeKeyAndVisible];
方法 3中storyboard ID
创建控制器 方法 4
#pragma mark - 方法 4 :加载xib 创建控制器 (创建了LoadXib文件,不需要进行关联或者连线)
//实例化一个window
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//加载xib成为控制器
UIViewController *controller = [[NSBundle mainBundle] loadNibNamed:@"LoadXib" owner:nil options:nil].lastObject;
//设置controller成为window的根控制器
self.window.rootViewController = controller;
//让window成为主窗口并可见
[self.window makeKeyAndVisible];
创建控制器 方法 5
#pragma mark - 方法 5 :用xib文件 来初始化控制器 (需要创建一个xib文件 并在xib文件中和控件进行连线并和类进行关联)
/*
xib中没有view存在
reason: '-[UIViewController _loadViewFromNibNamed:bundle:] was unable to load a nib named "InitalTest"'
*/
/*
view没有关联
reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "InitalTest" nib but the view outlet was not set.'
*/
//实例化一个window
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//根据xib文件实例化一个控制器
UIViewController *controller = [[UIViewController alloc]initWithNibName:@"InitalTest" bundle:nil];
//设置controller成为window的根控制器
self.window.rootViewController = controller;
//让window成为主窗口并可见
[self.window makeKeyAndVisible];
方法5中xib需要和拖拽的控件进行连线
方法5中xib和类进行关联
创建控制器 方法 6
#pragma mark - 方法 6 :和类同名xib 创建控制器 (如果存在和类同名的xib,通过alloc init 内部会优先查找加载xib,创建的时候 xib内部已经和控件连线并和类进行关联)
//实例化一个window
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//实例化控制器
TestViewController *controller = [[TestViewController alloc]init];
//设置controller成为window的根控制器
self.window.rootViewController = controller;
//让window成为主窗口并可见
[self.window makeKeyAndVisible];