在Xcode5中,当建立一个带View的iPhone项目时,默认必须使用Storyboards,再也不支持切换xib的checkbox。本文讲解如何手动切换到使用xib来布局。html
1,把Main.storyboard从项目中移除xcode
2,添加xib文件到项目中。添加一个新文件,选择View,命名和*ViewContorller相同。app
3,把Main storyboard对应的项从plist文件中移除ide
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,这里不详述了。ui
5,可选:关闭ARC。 在项目的build setting中,找到 Objective-C Automatic Reference Counting, 设置为Nospa
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.'3d
步骤(参考自 loaded some nib but the view outlet was not set):code
1). 点击咱们要加载的 xib 文件
2). 在右边选中 File's Owner
3). 在 File's Owner 的 选项卡的“Custom Class” 属性设置中,将 Class 的值改为对应的 VC, 这里改为 UIViewController,
4). 这时候,在File's Owner 的 选项卡中, 就 会出现“待链接设置” 的 view 属性, 也即咱们的编译器 告诉咱们的 the view outlet was not set 中的 view。当 File's Owner 的 class 为 NSObject 时候,是没有 view 属性的。
链接 view 属性(把连线拖动到xib设计器中进行链接),
参考:
http://www.cnblogs.com/TivonStone/archive/2012/04/20/2460116.html
http://stackoverflow.com/questions/17234172/xcode-5-without-storyboard-and-arc