Xcode 4.2 iOS空应用程序和故事板

Ama*_*dan 37 xcode storyboard ios ios5 xcode4.2

我是Xcode新手,我正在尝试制作我的第一个培训应用程序.由于显然空应用程序模板是唯一提供预集成核心数据的模板,我选择它.但是,在那之后,我无法使UI工作(它仍然是空的).

我做了什么:

  • 空应用程序模板
  • 新的iPad故事板文件
  • 将标签栏控制器溅到它上面
  • 在项目的摘要视图中更改了主故事板
  • 击中 ⌘R
  • 盯着纯白色的iPad屏幕,没有任何标签

我尝试将我作为Tab Bar应用程序(它确实反映了我的Storyboard更改)创建的另一个项目进行了区分,没有任何见解.

Rob*_*ill 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;
}
Run Code Online (Sandbox Code Playgroud)

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

另外 - 请注意,Master/Detail模板还为您提供了核心数据选项.


Sco*_*ner 39

对于Empty Application项目,在添加Storyboard文件后,您必须做两件事...

  1. 在项目Info.plist文件中添加一行:

    Key: Main storyboard file base name
    Value: Storyboard
    
    Run Code Online (Sandbox Code Playgroud)

    (或任何你命名的故事板文件)

  2. 删除的内容application:didFinishLaunchingWithOptions:除外return YES;:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        return YES;
    }
    
    Run Code Online (Sandbox Code Playgroud)

  • 你的第1项是非常重要的一步!似乎没有其他人提及它,谢谢! (6认同)

Jim*_*Jim 9

Master-Detail和Utility项目模板还提供Core Data作为选项.

Core Data的Apple模板非常糟糕.它们在应用程序委托中填充了太多功能,并且它们不必要地使用延迟加载,这使事情变得更加复杂.

在没有Core Data的情况下启动的项目中,最好查看生成的代码并将功能添加为单独的类.

但是,要回答您的直接问题,默认的空模板会在app delegate的application:didFinishLaunchingWithOptions:方法中以编程方式创建一个窗口.故事板本身设置了一个窗口,因此您需要从应用程序委托中删除该代码.你唯一需要的是这种方法return YES;.