1、纯代码创建根视图控制器,在Appdelegate中的didFinishLaunchingWithOptions
self.window =[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//设置窗口根窗口控制器
self.window.rootViewController
//将窗口作为主窗口被设置可见
[self.window makeKeyWindow];
2、通过storyboard文件来创建,加载storyboard中的控制器就可以了。从这个文件中实例化控制器。当你自己创建了个storyboard可以这样进行设置,但是你要保证你的这个storyboard文件不为空,以及设置了Is Initial View Controller.如果我们是用系统自带的就不要去修改了还是直接用就可以了。
self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
//加载文件
UIStoryboard * board=[UIStoryboard storyboardWithName:@"ZXStoryboard" bundle:nil];//nil就代表在mainBundle这个路径下
//从storyboard中实例化控制器
UIViewController * viewController=[board instantiateInitialViewController];
self.window.rootViewController=viewController;
[self.window makeKeyAndVisible];
还有就是如果你在storyboard文件中没有设置Is Initial View Controller,我们可以通过一个标识符来进行设置,如下所示,然后再把实例化的代码设置为 UIViewController * viewController=[board instantiateViewControllerWithIdentifier:@"blue"];
还有我们可以在info.plist中设置下也是可以的
3、xib创建控制器,先创建自定义控制器类,然后指定xib文件,修改xib文件中的File's Owner的custom class,设置为你自定义的控制器类,把
File's Owner中的view拖线给xib中的view,怎么拖?如下图
比如说我们自定义的控制器类为XibViewController,xib的文件名是ZXib我们只需要这么写就可以了self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
XibViewController * xibVc=[[XibViewController alloc]initWithNibName:@"ZXib" bundle:nil];
self.window.rootViewController=xibVc;
[self.window makeKeyAndVisible];
还有种情况就是如果你的控制器名称为
XibViewController,你的xib文件的名字设置为XibView这样的话我们就可以直接这样初始化就可以了XibViewController * xibVc=[[XibViewController alloc]init]; 它会自动去找你对应的xib文件的。xib的名称和控制器的名称完全一致也是可以的,就会先去找完全一样的名字的,如果没有再去找相似的。