如何在Xcode 6中使用XIB创建iOS项目?

时间:2014-08-15 12:26:21

标签: ios objective-c

我尝试用Objective-C语言创建一个没有使用Xcode 6 Beta 5的故事板的项目。我尝试并创建了一个空项目,但它没有像Xcode 5一样工作。

我已阅读此主题How to create project without story board in Xcode 6 - Swift,但它对我没有帮助。

5 个答案:

答案 0 :(得分:9)

你是什么意思它没有像Xcode 5一样工作?您可以创建没有storyboard的空项目,然后像Xcode 5一样使用XIB添加自己的类: 档案 - >新 - >档案 - > Cocoa Touch Class - >设置"子类:" as(例如)UIViewController并检查"还创建XIB文件"。

答案 1 :(得分:8)

你首先要制作一个新的"单一视图"项目。这是从故事板开始的,但是当Xcode 6删除了创建Empty项目的选项时,我们将从这里开始使用它。

然后,您为此项目创建一个新文件,进入"用户界面"类别并选择"查看"。我将其命名为与原始ViewController相同的名称,因为它将替换我们将要从项目中删除的故事板。

创建XIB后,您需要选择它并设置"文件的所有者"指向" ViewController"您希望此XIB链接的类。这是通过进入文件的Xib所有者的Identity Inspector,并将NSObject的默认值更改为视图控制器的类名来完成的。

完成后,您需要转到Connections Inspector,将File的所有者视图链接到XIB视图。只需点击"中的小圆圈即可查看"并将其拖动到您的视图以连接它。然后,您应该在视图和视图之间建立连接。

现在重要的部分。进入您的项目目标,在" General"标签。有一个名为"部署信息"的小节。在该小节中,有一个字段用于"主界面"。该字段应显示故事板的名称。您需要删除此字段中显示的值,以便将主界面留空。

然后进入App Delegate并设置窗口的根视图控制器,就像您以前版本的Xcode一样。完成后,您应该使用XIB运行应用程序,并且可以从项目中删除故事板而不会产生任何不利影响。

答案 2 :(得分:2)

我不知道为什么人们会投票,因为这是一个合理的问题,所以这就是你需要做的事情:

创建一个空项目,创建一个新的视图控制器(文件/新建/文件) - 如果需要,可以使用XIB文件,将新视图控制器导入AppDelegate,并将此视图控制器设置为根视图控制器。 / p>

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;
}

现在,当然,如果您想要创建一个标签栏或导航控制器,您可能会有所不同,但这应该是一个很好的起点。

答案 3 :(得分:2)

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;
}

答案 4 :(得分:0)

这很简单:

  • 创建空应用程序项目
  • 添加到此项目新文件 - > 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;
}

多数人。