如何使用 Interface Builder 和 Swift 在 xCode6 中正确创建故事板

Posted

技术标签:

【中文标题】如何使用 Interface Builder 和 Swift 在 xCode6 中正确创建故事板【英文标题】:How to properly create a storyboard in xCode6 using Interface Builder and Swift 【发布时间】:2014-06-15 01:17:25 【问题描述】:

我需要帮助,使用 Interface builder 创建故事板和初始视图,使用 xCode 6 和 Swift。我不想从模板“单一视图应用程序”开始,而是从“空应用程序”开始 - 用于学习目的。

我从 xCode 6 中的 File->New->Application 开始。 在左侧窗格中,我选择了 ios-> 应用程序,并且我选择了模板“空应用程序”

现在,我有一个空应用程序,我想使用 Interface Builder 创建故事板。

我选择 File-New-File - 然后在左窗格中选择 iOS-User Interface 并在右窗格中选择 Storyboard。我将我的故事板称为“主要”

这似乎什么也没做,所以在检查其他模板后,我决定我需要去 info.plist 并添加一个键/值对,所以在 info.plist 我添加了一个键“主故事板文件库name”和“Main”的值

之后我得到错误:

无法为 UIMainStoryboardFile 'Main' 实例化默认视图控制器 - 可能未设置指定的入口点?

所以现在我去情节提要并将“视图控制器”拖放到情节提要上,顺便说一句 - 在视图控制器检查器中检查了“初始场景 - 是初始视图控制器”

但这不会创建任何 swift 文件 - 这可能是意料之中的,但要明确的是它不会。现在当我尝试运行时,我得到了错误:

应用程序窗口应该在应用程序启动结束时有一个根视图控制器

所以有什么想法吗?我试图弄清楚你如何正确使用 Interface Builder 创建故事板和初始视图并做一个基本的 hello world,而不跳过使用该工具在模板中为我创建它,因为我的假设是你会快速拥有比从模板创建的更复杂的应用程序,知道如何使用这些工具可能会很好 - 但我没有找到有关该主题的文档。

编辑:奇怪的时机我碰巧找到了答案,就像其他人也为我正确回答了这个问题一样,所以我将编辑这篇文章并删除答案 - 因为下面的答案完全正确。

【问题讨论】:

嘿,伙计们,继续告诉我是什么让你觉得如此冒犯。 我没有投反对票,但我想这是以下几种情况的结合:没有代码,文本过多,以及从空应用程序开始的前提很奇怪,我怀疑它有助于学习,因为你在那里学到了什么是 Apple 已经为您完成的痛苦设置,而更重要的学习将是实际构建应用程序。这使得任何答案都可能对其他人没有帮助,这是在 *** 上需要考虑的一个重要方面。 谢谢,我发现整个社区都被误导了。 送给和你想法一样的人。 Interface Builder 旨在构建无需代码的接口。在 Titan 中,所有接口都只使用代码完成,但在 Apple 世界中,IB 是一个合法的工具。超越苹果的模板是好奇的人会做的事情,他们将成为更好的编码器,而不是学习细节的更差的编码器。社区显然在做的主要事情是错误地相信 Apple iBook 文档很快,但事实并非如此。只有核心语言。如果你不是来自 Objective-C - 迄今为止,苹果还没有在 Swift 中记录 Cocoa(Touch)。 我非常感谢您的回答,但这与我无关,我不在乎,我看到其他人的合法和有用的问题经常被一个敌对团体投票反对堆栈溢出,不了解非 Objective-C 编码人员涌入 Swift 语言 - 并错误地认为他们没有提出合法的问题。任何人都想指出我在哪里,UILable 的所有方法都记录在 Swift 中?你不能。 【参考方案1】:

情节提要自动创建窗口并为您实例化初始视图控制器。应用程序委托中的代码正在创建另一个您不想要的窗口。您应该删除 didFinishLaunchingWithOptions 中的所有代码,“return true”除外。然后它将正常运行。

【讨论】:

谢谢!结果就是这样。

以上是关于如何使用 Interface Builder 和 Swift 在 xCode6 中正确创建故事板的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Interface Builder 设置 UIScreenEdgePanGestureRecognizer?

如何在 Xcode 6 Interface Builder 中使用模板渲染模式?

如何使用托管上下文自定义初始化 Interface Builder 的 UIViewController

如何在 Interface Builder 中定位 3.5” 和 4” Retina 的视图?

如何解决 Interface Builder Xcode 中的 stackview 错误问题?

如何使用 Interface Builder 在其他 UI 元素的背景中添加 UIButton?