【问题标题】:Refactor ViewControllers - Error : Storyboard both contain a view controller with same identifier重构 ViewControllers - 错误:Storyboard 都包含具有相同标识符的视图控制器
【发布时间】:2016-08-28 06:24:13
【问题描述】:

我正在为一个项目使用 Xcode 7.3(最低部署目标 8.0)

我有一个越来越大的故事板。我曾想过使用 Editor -> Refactor To Storyboard... 将两 (2) 组场景重构为两 (2) 个不同的情节提要,然后创建两个具有不同名称的情节提要以“保存”各自重构的场景.

它按预期工作 - 两个新故事板(NewStoryBoard1 和 NewStoryBoard2)“容纳”了两组重构场景。

当我构建项目时出现此错误:

将 Storyboard References 部署到 iOS 8.0 需要您的 故事板不共享任何视图控制器标识符。 NewStoryBoard1.storyboard 和 NewStoryBoard2.storyboard 都包含一个 具有标识符“UIViewController-knd-7b-mzO”的视图控制器。

我没有将标识符命名为

UIViewController-knd-7b-mzO

这似乎是在 Xcode 中自动完成的。

我的问题是,为什么 Xcode 会创建两个故事板引用,指向具有相同标识符的两个不同视图控制器?

我有几个类似的问答线程讨论这个问题,但他们没有提供任何解决方案。

我怎样才能最好地解决这个问题?非常感谢。

更多信息

在尝试重构我选择的场景/视图后,我看到了一个新的故事板,如下所示:

放大:

一个奇怪的故事板参考出现了——尽管我已经在新的故事板上选择了一个 ViewController 作为我的Initial ViewController

我在两个新重构的情节提要中获得了相同类型的情节提要参考。结果,我在构建项目时收到了这个错误:

将 Storyboard References 部署到 iOS 8.0 需要您的 故事板不共享任何视图控制器标识符。 NewStoryBoard1.storyboard 和 NewStoryBoard2.storyboard 都包含一个 具有标识符“UIViewController-knd-7b-mzO”的视图控制器。

我尝试重命名新的故事板参考(在上图中列为“问题”),但这并没有解决错误。

请参阅下面的回答,了解我是如何解决问题的。

【问题讨论】:

    标签: xcode swift compiler-errors storyboard xcode7


    【解决方案1】:

    我认为我收到了随机的 UIViewController-knd-7b-mzO 重复故事板引用,这导致了我的构建错误,因为:

    注意:如果场景的情节提要 ID 为空,则重构为 Storyboard 命令会自动生成一个丑陋的,比如 UIViewController-gtY-c7-gYu。

    (来源)https://www.raywenderlich.com/115697/ios-9-storyboards-tutorial-whats-new-in-storyboards

    而且我没有为所有重构的场景/视图输入故事板 ID。

    继续……我设法通过以下方式解决了错误问题:

    1. 删除奇怪的情节提要参考(在我上面的问题中列为“问题”);
    2. 确保我在每个新故事板中指定了Initial ViewController;和
    3. 确保我的 主要(即原始)故事板中两个“新故事板”引用的 Reference ID 字段为空白

    实际上,这是有道理的。该引用将任何对重构故事板场景的调用定向到新故事板(由Storyboard 字段引用),从而自动呈现相应的“新”Initial ViewControllers

    对我的语法或代码引用中的任何错误表示歉意,我是编程新手。

    我希望这对将来可能面临同样问题的任何人有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-06-11
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 2015-03-06
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      相关资源
      最近更新 更多