欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-22 22:53:22
...
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"];

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

还有我们可以在info.plist中设置下也是可以的

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

3、xib创建控制器,先创建自定义控制器类,然后指定xib文件,修改xib文件中的File's Owner的custom class,设置为你自定义的控制器类,把

File's Owner中的view拖线给xib中的view,怎么拖?如下图ios-创建根视图控制器的三种方式

比如说我们自定义的控制器类为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的名称和控制器的名称完全一致也是可以的,就会先去找完全一样的名字的,如果没有再去找相似的。