Xcode 4.2 iOS空应用和故事板

37
我是一个 Xcode 新手,正在尝试制作我的第一个培训应用程序。由于明显空应用程序模板是唯一提供预集成核心数据的模板,所以我选择了它。然而,在那之后,我不能让 UI 工作(它仍然是空的)。
我的操作步骤如下:
  • 选择空应用程序模板
  • 创建新的 iPad Storyboard 文件
  • 在其中添加 Tab Bar Controller
  • 在项目概要视图中更改主要的 Storyboard
  • 按下 ⌘R
  • 盯着纯白色的 iPad 屏幕,没有任何选项卡
我试图与我创建的另一个选项卡栏应用程序对比(它反映了我的 Storyboard 更改),但没有任何见解。
3个回答

76

在AppDelegate.m中将窗口创建和显示代码注释掉(或删除):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    // self.window.backgroundColor = [UIColor whiteColor];
    // [self.window makeKeyAndVisible];

    return YES;
}

当使用故事板时,一个主要的UIWindow将自动为您创建。在您的情况下,发生的是您正在创建另一个白色窗口并将其放置在选项卡UI的顶部。

此外 - 请注意,主/细节模板还提供了核心数据选项。


从未在iPhone上看到过Master/Detail,我觉得我不能将其制作成通用应用程序...另外,谢谢,它完美地工作。 - Amadan
主/细节是许多iPhone应用程序使用的标准导航控制器模板。 - Robin Summerhill
哦,我以为这是导航+表格 :) 好吧,这简化了事情!(我以为主/细节是 iPhone 上拆分视图的东西 - 我在 iPhone 上没有看到过。这说明我知道的有多少 :P) - Amadan
它是导航+表格,因为这是一个典型的组合。但是,如果您不需要表格,可以将其剥离。 - Robin Summerhill

39

对于一个空的应用程序项目,你需要完成两个步骤,当你添加了你的 Storyboard 文件之后...

  1. 向你的项目 Info.plist 文件中添加一行:

    Key: Main storyboard file base name
    Value: Storyboard
    
  2. 删除application:didFinishLaunchingWithOptions:中除return YES;以外的所有内容:

  3. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        return YES;
    }
    

6
你的第一条建议非常重要!似乎没有其他人提到过,谢谢! - Pat

9
主从和实用程序项目模板还提供Core Data作为选项。
苹果的Core Data模板相当糟糕。它们将太多功能塞进应用程序委托中,并且不必要地使用了延迟加载,这只会让事情更加复杂。
最好查看生成的代码,并将功能作为单独类添加到不使用Core Data启动的项目中。
但是,要回答您的直接问题,空白模板默认在应用程序委托的`application:didFinishLaunchingWithOptions:`方法中以编程方式创建窗口。故事板本身设置一个窗口,因此您需要从应用程序委托中删除该代码。该方法中唯一需要的是`return YES;`。

通常我不喜欢自动生成的代码,但在这种情况下,尝试进入一个完全新的工具生态系统,不知道任何东西,更不用说如何自己创建新的东西了,跟随模板仍然是最好的选择 :( 我很想自己写,但我想这得等等。顺便说一句:不能接受两个答案,这不公平 >.< - Amadan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接