尝试在导航控制器中嵌入视图控制器时 Xcode6-Beta 崩溃

Posted

技术标签:

【中文标题】尝试在导航控制器中嵌入视图控制器时 Xcode6-Beta 崩溃【英文标题】:Xcode6-Beta crashing when trying to embed a view controller in a navigation controller 【发布时间】:2014-06-13 09:06:12 【问题描述】:

我对 ios 编程很陌生,我只是想通过 Swift “翻译” Apple 的 To-do list 应用程序教程(原文在这里找到:https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/RoadMapiOS/,Swift 版本在这里找到:@987654322 @)。

在情节提要中设置视图和视图控制器时,我的问题已经出现。当我到达字幕下的第 1 步时(EDIT: Wrong step in the original post)“ViewController Navigation Bar”(选择 ViewController 并在菜单中转到 Editor > Embed > Navigation Controller)Xcode6- Beta 立即崩溃。我已经尝试了几次,每次都发生崩溃,并提供相同的崩溃报告。

阅读崩溃报告,我在“详细信息”下找到了这个

castedInstance should be an instance inheriting from IBCocoaTouchStoryboardShowSegue, but it is IBCocoaTouchStoryboardShowDetailSegue

这是已知修复的已知问题吗?

【问题讨论】:

向 Apple 提交错误,以便他们知道并修复它。 bugreport.apple.com 你重启xcode了吗? 很多次。已经重新创建了大约 10 次崩溃。但是我现在注意到我在上面的教程中提到了错误的步骤。立即编辑。 【参考方案1】:

不执行将“添加”按钮连接到视图控制器的上一步(在导致崩溃之前的两个步骤)可以避免特定的崩溃。在嵌入导航控制器之前不要执行这些步骤:

配置添加按钮:

    控制拖拽Add Button到ViewController

    在出现的快捷菜单上,选择“显示详细信息”

换句话说,这些步骤是乱序的。

另外,我建议将视图控制器移动到表视图控制器的右侧,以对应实际的控制流程。

该教程还有其他挑战。教程末尾有a link,您可以在其中下载完成的项目。该代码似乎有效。该教程似乎有几个步骤不按顺序进行,说明含糊或不完整。

【讨论】:

谢谢,这似乎是一个不错的解决方法。您是否知道建议的顺序导致崩溃的原因?这只是 Xcode6 测试版中的一个错误,还是有一些底层因素专门阻止了这一系列步骤? 我认为作者在没有测试新教程的情况下创建了从原始 Obj-C 教程到 Swift 的仓促转换。最终产品有效,但教程无效。我的猜测是,在故事板中已经连接一个动作之后嵌入导航控制器不是一个逻辑顺序,故事板应用程序不会优雅地处理错误。 有越来越多的 Swift 教程可用,你只是碰巧选择了一个未经测试的教程。 Here's a similar one 建立一个适合我的桌子。

以上是关于尝试在导航控制器中嵌入视图控制器时 Xcode6-Beta 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

在导航控制器中嵌入子视图

在 Xcode 6 和 Swift 中的视图之间进行类似 Snapchat 的滑动导航)

如何以编程方式将视图控制器嵌入到导航视图控制器中

在容器视图中嵌入 NavigationController

视图控制器中的集合视图,单元格触摸集合视图本身的顶部边框(嵌入在导航控制器中)

嵌入导航控制器时 Xcode 滚动视图自动布局问题?