ios-创建根视图控制器的三种方式

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的名称和控制器的名称完全一致也是可以的,就会先去找完全一样的名字的,如果没有再去找相似的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值