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

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

我做了什么:

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

我尝试了另一个项目,我创build了一个标签栏应用程序(这反映了我的故事板更改),没有任何见识。

在AppDelegate.m中注释(或删除)窗口创build和显示代码,如下所示:

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

使用故事板时,会自动为您创build一个主UIWindow。 你的情况发生的是你正在创build另一个白色的窗口,并把它放在标签UI的顶部。

请注意,主/明细模板也为您提供核心数据选项。

对于Empty Application项目,在添加Storyboard文件之后,您必须执行两项操作。

  1. 将一行添加到您的项目Info.plist文件中:

     Key: Main storyboard file base name Value: Storyboard 

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

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

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

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

Core Data的Apple模板非常糟糕。 他们在应用程序委托中插入了太多的function,并且不必要地使用延迟加载,这更加复杂了。

您最好查看生成的代码,并在不使用核心数据的情况下将项目作为独立的类添加到项目中。

为了回答你的问题,默认的空模板在应用委托的application:didFinishLaunchingWithOptions:方法中以编程方式创build一个窗口。 故事板本身设置了一个窗口,所以您需要从应用程序代理中删除该代码。 你在这个方法中唯一需要的是return YES;