storyboard和xib加载

说白了,storyboard和xib都是用来描述控制器的view。但是他们的加载过程却是不同的,加载的时候按照如何将view显示到window上,现分析如下:
storyboard加载:

  // 1.创建窗口
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

  // 2.加载storyboard,注意Main代表的是storyboard的名称,系统默认加载的是main.storyboard。如果我们选择加载自定义的storyboard,需要现在.plist文件中,干掉main,然后在代码中加载自定义的storyboard名。另外:nil = [NSBundle mainBundle]
   UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

  //  3.加载storyboard描述的控制器,这里有两种方式,方法一加载箭头指向的storyboard,方法二代表加载标记为vc1的storyboard
  方法一:  UIViewController *vc = [storyboard instantiateInitialViewController];
  方法二:  UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"vc"];
  
  // 4.将控制器添加到窗口
 self.window.rootViewController = vc;
  // 5.将窗口设置为可见
  [self.window makeKeyAndVisible];

xib加载:

  // 1.创建窗口
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

  // 2.加载名为ViewController的xib文件
UIViewController *vc = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
  
  // 4.将控制器添加到窗口
 self.window.rootViewController = vc;

  // 5.将窗口设置为可见
  [self.window makeKeyAndVisible];

相对于storyboard来说,xib的非代码工作量较大,图解如下:


Snip20160415_6.png

而对于storyboard来说,我们只需要绑定控制器即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容