zoukankan      html  css  js  c++  java
  • Xcode5中如何切换Storyboards为xib

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

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

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

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

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

     - (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

  • 相关阅读:
    c++单例设计模式---17
    c++友元函數---16
    c++const关键字---15
    c++浅拷贝和深拷贝---14
    linux shell 基本语法
    Linux静态库生成
    alsa wav
    Android Butterknife使用方法总结 IOC框架
    利用cglib给javabean动态添加属性,不用在建VO
    钢铁雄心三 通过事件做修改器
  • 原文地址:https://www.cnblogs.com/Binhua-Liu/p/3566103.html
Copyright © 2011-2022 走看看