Xcode 4.2 iOS 空应用程序和故事板
Posted
技术标签:
【中文标题】Xcode 4.2 iOS 空应用程序和故事板【英文标题】:Xcode 4.2 iOS Empty Application and storyboards 【发布时间】:2011-12-15 22:22:47 【问题描述】:我是 Xcode 新手,我正在尝试制作我的第一个培训应用程序。因为显然空应用程序模板是唯一提供预集成核心数据的模板,所以我选择了它。但是,在那之后,我无法让 UI 工作(它仍然是空的)。
我做了什么:
空应用程序模板 新的 iPad 故事板文件 标签栏控制器飞溅到它上面 更改了项目摘要视图中的主要故事板 点击⌘R 盯着纯白色的 iPad 屏幕,没有任何标签我尝试对比我创建为标签栏应用程序的另一个项目(它确实反映了我的情节提要更改),但没有任何见解。
【问题讨论】:
【参考方案1】:注释掉(或删除)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 的顶部。
ALSO - 请注意,主/明细模板还为您提供了核心数据选项。
【讨论】:
从来没有在 iPhone 上看到过 Master/Detail,我想我不能让它成为 Universal ... 另外,谢谢,工作得很好。 Master/detail 是许多 iPhone 应用程序使用的基于导航控制器的标准模板。 哦。我以为是导航+表格 :) 好吧,这简化了事情! (我认为主/细节是 iPhone 上的拆分视图 - 我在 iPhone 上没有看到。显示我知道多少:P) 它是导航+表格,因为这是一个典型的组合。但是,如果你不想要它,你可以把桌子去掉。【参考方案2】:对于空应用程序项目,您必须在添加 Storyboard 文件后做两件事...
在您的项目 Info.plist 文件中添加一行:
Key: Main storyboard file base name
Value: Storyboard
(或任何您命名的故事板文件)
删除application:didFinishLaunchingWithOptions:
除return YES;
以外的内容:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
return YES;
【讨论】:
您的第 1 项是非常重要的一步!似乎没有其他人提到它,谢谢!【参考方案3】:Master-Detail 和 Utility 项目模板还提供 Core Data 作为选项。
Core Data 的 Apple 模板非常糟糕。他们在应用程序委托中填充了太多功能,并且不必要地使用延迟加载,这只会使事情变得更加复杂。
您最好查看生成的代码并将功能作为一个单独的类添加到您开始的没有 Core Data 的项目中。
不过,为了回答您的直接问题,默认的空模板以编程方式在应用程序委托的 application:didFinishLaunchingWithOptions:
方法中创建一个窗口。故事板自己设置了一个窗口,因此您需要从应用程序委托中删除该代码。在该方法中您唯一需要的是return YES;
。
【讨论】:
我通常不喜欢自动生成的代码,但是在这种情况下,我试图进入一个全新的工具生态系统并且不知道有什么用,更不用说如何自己制作新的东西了,仍然跟随模板效果最好:(我很想自己写,但我想它必须等待。顺便说一句:我不能接受两个答案是不公平的>。以上是关于Xcode 4.2 iOS 空应用程序和故事板的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Interface Builder 和 Swift 在 xCode6 中正确创建故事板