[英]How to create an iOS project with a XIB in Xcode 6?
我正在尝试用Objective-C语言创建一个没有使用Xcode 6 Beta 5的故事板的项目。我尝试并创建了一个空项目,但它不能用作Xcode 5。
我已经阅读了这个主题如何在Xcode 6中创建没有故事板的项目 - Swift但它对我没有帮助。
你是什么意思它没有像Xcode 5那样工作? 您可以创建没有storyboard的空项目,然后在Xcode 5中添加您自己的类XIB:File - > New - > File - > Cocoa Touch Class - > Set“Subclass of:”as(例如)UIViewController并检查“创建XIB文件“。
您首先要创建一个新的“单一视图”项目。 这开始于一个Storyboard,但是当Xcode 6删除了创建Empty项目的选项时,我们将从这里开始使用它。
然后,为该项目创建一个新文件,进入“用户界面”类别并选择“查看”。 我将它命名为与原始ViewController相同的名称,因为它将替换我们即将从项目中删除的故事板。
创建XIB后,您需要选择它并将“文件所有者”设置为指向您希望此XIB链接的“ViewController”类。 这是通过进入Xib文件所有者的Identity Inspector,并将NSObject的默认值更改为视图控制器的类名来完成的。
完成后,您需要转到Connections Inspector以将文件所有者的视图链接到XIB的视图。 只需点击“视图”对面的小圆圈,然后将其拖到视图中即可进行连接。 然后,您应该在视图和视图之间建立连接。
现在重要的部分。 在“常规”选项卡下进入您的项目目标。 有一个名为“部署信息”的小节。 在该小节中,有一个“主界面”字段。 该字段应显示故事板的名称。 您需要删除此字段中显示的值,以便将主界面留空。
然后进入App Delegate并设置窗口的根视图控制器,就像您以前版本的Xcode一样。 完成后,您应该使用XIB运行应用程序,并且可以从项目中删除故事板而不会产生任何不利影响。
我不知道为什么人们会投票,因为这是一个合理的问题,所以这是你需要做的:
创建一个空项目,创建一个新的视图控制器(文件/新建/文件) - 如果需要,可以使用XIB文件,将新视图控制器导入AppDelegate,并将此视图控制器设置为根视图控制器。
AppDelegate.m:
#import "AppDelegate.h"
// import the view controller you want to be displayed first
#import "FirstViewController.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// create an instance of the view controller you want to be displayed first
FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
// set it as the root view controller of the application's window
[self.window setRootViewController:firstViewController];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
当然,现在,如果你想创建一个标签栏或导航控制器,你会有所不同,但这应该是一个很好的起点。
AppDelegate.h
UINavigationController *nav;
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
ViewController *ll=[[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
nav=[[UINavigationController alloc]initWithRootViewController:ll];
[self.window setRootViewController:nav];
[nav setNavigationBarHidden:YES];
return YES;
}
这很简单:
添加到此项目新文件 - > Objective-C类(带.xib文件)。 我的类名为“ViewController”:)现在你必须在AppDelegate.h中创建UINavigationController,例如:
@property(强,非原子)UINavigationController * navController;
比你必须设置你的navcontroller
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
[self.window makeKeyAndVisible];
ViewController* homeViewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
_navController = [[UINavigationController alloc] initWithRootViewController:homeViewController];
self.navController.navigationBarHidden = YES;
self.window.rootViewController = self.navController;
return YES;
}
就这样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.