【问题标题】:Error: unreachable because it has no entry points错误:无法访问,因为它没有入口点
【发布时间】:2017-02-12 07:52:49
【问题描述】:

使用 Swift 我得到了我的“TableViewController”无法访问的错误,因为它没有入口点,也没有通过 [UIStoryboard instantiateViewControllerWithIdentifier] 访问的运行时访问。

在我的 View Controller 类中,建议在更改 instantiateViewController(withIdentfier...) 中的 instantiateViewController(withIdentifier) 时修复它。

我应该这样做还是如何解决这个问题?

【问题讨论】:

标签: ios swift


【解决方案1】:

您需要在Storyboard 中标记viewController,并将其设置为initial viewController。您在Attributes Inspector 下执行此操作。这意味着您设置启动应用程序时应打开哪个 viewController。

【讨论】:

  • 在我的场景中,我有一个故事板,其中有两个入口点,具体取决于用户是否登录。其中一个视图控制器被标记为“初始”,因此它给了我另一个视图控制器“无法访问”的警告。我该如何摆脱它?
  • @NileshPol,为无法访问的 viewController 创建一个 segue,以便您始终转到第一个。如果您已登录到另一个 viewController。
  • 你为什么没有在你的截图中检查Is Initial View Controller?!
【解决方案2】:

我遇到了同样的错误。我认为这个答案很有用: Xcode: "Scene is unreachable due to lack of entry points" but can't find it

问题是由于一些实验和复制粘贴我有 实际副本 视图控制器 strong> 位于屏幕的可见部分之外,或者它可以恰好堆叠在其孪生之上。所以我只是删除了不需要的 :-) 你应该打开 Document Outline检查副本 :-)

【讨论】:

  • 谢谢,我没有注意到这一点。
【解决方案3】:

将您的 TableViewController 设置为 Storyboard 中的初始视图控制器

【讨论】:

    【解决方案4】:

    我通过将默认的“ViewController.swift”重命名为“MainViewController.swift”来解决这个问题。也许这是对用户的警告,以确保所有内容都按照您的预期进行定义。

    我再次遇到此问题并回溯,最终清除情节提要,然后将其从项目中完全删除,问题仍然存在。重新启动 Xcode 解决了这个问题。

    【讨论】:

    • 谢谢!这是一个有用的提示,尤其是:重新启动 Xcode 解决了这个问题。就我而言,我添加了一个独立的视图控制器,它最初没有故事板标识符,Xcode 正确地警告我。但是,我很困惑,因为即使添加了故事板标识符,每次构建时我都会收到警告。重新启动 Xcode 解决了这个问题。 :)
    • 这对我完全有用。与上述 TabBarController + 2 VC 相同的问题。一个产生警告。重新启动 XC 等等。再次感谢。
    【解决方案5】:

    对我来说,我只有一个没有附加到任何东西的视图控制器,即我有一个 UITabBar 控制器,以及一些附加到 TabBar 的视图控制器,但是有一个视图控制器被搁置,没有任何连接到另一个视图。

    根据我的经验,错误消息是,

    “View Controller”无法访问,因为它没有入口点,也没有通过 -[UIStoryboard instantiateViewControllerWithIdentifier:] 进行运行时访问的标识符。

    视图控制器名称是引号中的文本,即“视图控制器”。

    希望这对某人有所帮助!

    【讨论】:

    • 所以这只是意味着忽略这个警告是安全的吗?我有同样的场景,但我实际上定义了 Storyboard ID 并在代码中实例化它。所以仍然得到警告是令人困惑的。另一方面,你会使用搁浅的 View Controller 吗?
    • @Efren 我之前忽略了警告,你也可以。我会尽量让这一点更清楚:我有一个 TabBarController(那是最初的 VC),它连接到三个 VC(有三个 TabBar 图标)。我有一个没有连接到 TabBarController(或其他任何东西)的第四个 VC,因此永远无法通过应用程序界面访问。这个 VC 是抛出错误的那个,因为就 Xcode 而言,它是无用的,永远无法访问。使用什么代码并不重要,重要的是在情节提要中建立了什么样的连接。更有意义? VC = ViewController 仅供参考
    • 感谢您的回复,我了解了 VC 的故事,但就我而言,我确实添加了标识符,所以警告应该已经消失了。安全地摆脱警告会很好。在同一个VC中遇到更多麻烦后,我一直在寻找问题,最终它与此有关:stackoverflow.com/a/18057555/1736679
    • @Efren 很高兴你明白,当我重读我的答案时,我认为这有点令人困惑。据我了解,导致您出现问题的 VC 是连接到另一个 VC 还是最初的 VC?无论如何,我很高兴您能想到并感谢您的链接!
    【解决方案6】:

    在我的情况下,我不小心删除了 Storyboard Entry Point,并且应用程序没有启动,

    几次撤消后,我看到了问题并纠正了它

    【讨论】:

      【解决方案7】:

      当您的故事板中有 2 个或更多导航控制器(嵌入式 UIVIewcontrollers)或 2 个或更多 UIViewcontrollers 时。 Xcode 可能正在寻找启动视图控制器。您可以将其中任何一个标记为启动视图控制器,只需选择“是初始视图控制器”

      或者您可以为情节提要中的每个 UInavigationcontrollers 或 UIViewcontrollers 或 UITabviewcontrollers 提供一个唯一的情节提要 ID。

      【讨论】:

        【解决方案8】:

        只需在 Storyboard ID 中添加一个 ID(以及恢复 ID,以防万一)

        【讨论】:

          【解决方案9】:

          我解决了我的问题如下:

          1. 确保故事板是初始视图控制器

          2. 在自定义类中,选择的类是 ViewController

          【讨论】:

            【解决方案10】:

            这是我的错误。

            警告:不支持的配置:“视图控制器”无法访问 因为它没有入口点,也没有运行时访问的标识符 通过 -[UIStoryboard instantiateViewControllerWithIdentifier:].

            我删除了 ViewController 中的代码,但没有断开 Main.storyboradViewController 中的连接。

            【讨论】:

              【解决方案11】:

              我遇到了同样的问题。我发现我忘记在我的标签栏控制器中添加一个“ID”。希望这对某人有所帮助。

              【讨论】:

                【解决方案12】:

                我遇到了同样的问题,为了解决这个问题,我打开 Document Outline 然后意识到我不小心删除了两页之间的 Segue

                步骤:

                1) 编辑器> 显示文档大纲 document outline

                2) 检查文档大纲是否有任何copy-paste、segue 错误等。 screenshot

                【讨论】:

                  【解决方案13】:

                  问题正如警告所说:此视图控制器无法访问,因为它没有入口点。

                  如果你只有一个视图控制器,那么这个控制器缺少它的入口点。您可以通过将此 View Controller 设置为“Is Initial View Controller”来解决此问题。

                  如果您有多个视图控制器并且此视图控制器不在情节提要序列的开头,那么您缺少一个应该显示此视图控制器的转场。您可以通过添加应显示此视图控制器的 segue 来解决此问题。

                  一般来说,Xcode 告诉你这个 View Controller 没有连接到故事板序列,因为它没有传入连接。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-08-10
                    • 2020-02-19
                    • 2013-12-22
                    相关资源
                    最近更新 更多