2

Apple 的技术说明在这里展示了他们将内容从 iOS 7 状态栏下方移动到其下方(以避免重叠)的推荐方法。然而,这个技术说明似乎假设使用故事板。我想知道如果您有一个在 .xib 文件中有“视图”的遗留项目该怎么办......即使在 .xib 中也没有 ViewController。只是一个观点。因为除非 .xib 中还存在 ViewController,否则您无法直观地添加约束。但是添加 ViewController 会在运行时导致未捕获的异常(见下文)。

为了说明,与其尝试发布我认为您可能需要从我的项目中看到的所有示例代码,您可以通过启动 XCode 4.6.x 并选择 New Project 来复制我遇到的问题。在 iOS 类别中选择“Single View project”,并取消选中“Use Storyboards”。

创建项目后,单击 .xib 文件。添加一个 UIViewController ,将现有视图设置为 ViewController 的子视图。选择 ViewController,显示 Utilities,然后单击 Identity Inspector。在那里,输入“ViewController”作为你的类。(所以你的新 UIViewController 使用现有的源代码。)

当你运行时,你会得到这个错误:

*** 由于未捕获的异常“UIViewControllerHierarchyInconsistency”而终止应用程序,原因:“一个视图一次最多只能与一个视图控制器关联!视图 > 与 关联。在将此视图与关联之前清除此关联。

我的问题:有什么方法可以将 ViewController 添加到现有的 .xib 文件中,这样我就可以添加约束,但不会得到上面看到的运行时异常?

(如果您在这里查看接受的答案,似乎答案可能是“否”?)

4

0 回答 0