Xcode5中如何切换Storyboards为xib

在Xcode5中,当创建一个带View的iPhone项目时,默认必须使用Storyboards,不再支持切换xib的checkbox。本文讲解如何手动切换到使用xib来布局。

1,把Main.storyboard从项目中移除

 

2,添加xib文件到项目中。添加一个新文件,选择View,命名和*ViewContorller相同。

 

3,把Main storyboard对应的项从plist文件中移除

 

4,在*AppDelegate中添加类似代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  {
     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] ;
 
      // Override point for customization after application launch.
 
      TestViewController *test = [[TestViewController alloc]     initWithNibName: @"TestViewController"  bundle:nil];
      UINavigationController *nav = [[UINavigationController alloc]  initWithRootViewController:test];
      self.window.rootViewController = nav;
 
      [self.window makeKeyAndVisible];
 
      return  YES;
}

如果ARC关闭的话,以上代码需要手动添加autorelease,这里不详述了。

5,可选:关闭ARC。 在项目的build setting中,找到 Objective-C Automatic Reference Counting, 设置为No

image

 

6,把xib关联到对应的ViewController上,否则会报如下错误

NibName[2203:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "loc" nib but the view outlet was not set.'

 

步骤(参考自 loaded some nib but the view outlet was not set):

1). 点击我们要加载的 xib 文件

2). 在右边选中 File's Owner

image

3). 在 File's Owner 的 image 选项卡的“Custom Class” 属性设置中,将 Class 的值改成对应的 VC, 这里改成 UIViewController,

image

image

4). 这时候,在File's Owner 的  image选项卡中, 就 会出现“待连接设置” 的 view 属性, 也即我们的编译器 告诉我们的 the view outlet was not set  中的 view。当 File's Owner 的 class 为 NSObject 时候,是没有 view 属性的。

image

连接 view 属性(把连线拖动到xib设计器中进行连接),

image

 

参考:

http://www.cnblogs.com/TivonStone/archive/2012/04/20/2460116.html

http://stackoverflow.com/questions/17234172/xcode-5-without-storyboard-and-arc


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值