代码之家  ›  专栏  ›  技术社区  ›  Tom Kidd

“无法实例化名为UIStoryboardShowSegueTemplate的类”-我如何使用iOS 7和iOS 8使故事板满意?

  •  6
  • Tom Kidd  · 技术社区  · 10 年前

    我创建了一个Xcode6,beta 6左右的项目(今天升级到b7)。使用Swift,为iOS 8 SDK等开发。

    到目前为止,Storyboard有两个视图控制器,两个控制器之间的一个segue设置为“Show”(不是由按钮直接触发,而是由成功登录处理)

    enter image description here

    一切都很时髦。然后我尝试在iOS 7.1模拟器上运行该应用程序。它在第一个屏幕上消失,并显示以下消息:

    *** Terminating app due to uncaught exception 
    'NSInvalidUnarchiveOperationException', 
    reason: 'Could not instantiate class named 
    UIStoryboardShowSegueTemplate'
    

    好吧,鉴于“Show”被列为“Adaptive Segue”,而且Adaptive UI几乎是iOS 8的概念,iOS 7可能会有问题。

    既然他们已经基本上说“看,这就是我们过去所说的推”,我想我会把Segue改为“推”。当然,它已被弃用,但我会在iOS 8接管时放弃它。

    但如果我使用它,我会收到警告

    enter image description here

    废话,我不想看到一些烦人的警告,但我不确定我是否想放弃iOS 7兼容性(尽管这不是不可能的)。而且这不在代码中,所以我无法抑制警告(或者我不知道如何)。

    我如何在Xcode 6中制作一个在iOS 7和8中都很开心的故事板Segue?

    2 回复  |  直到 10 年前
        1
  •  20
  •   Alex Cio Olie    9 年前

    您仍然可以在iOS 7中使用新的Segue类型(如Show)。确保在Storyboard界面生成器文档中,将“Builds for”设置为iOS 7而不是iOS8。(很抱歉,截图已准备好,但我没有足够的声誉来发布它)

    内部 File Inspector 选择最低值: enter image description here

        2
  •  1
  •   Anil.khanna89    10 年前

    因为我的项目也遇到了同样的问题。我通过重新检查应用程序中定义的所有片段来解决这个问题。确保所有segue都有一些动作,如push/pop/module。

    否则,控制器应用程序将崩溃。请检查下面的快照,您可以在故事板中找到。

    您的故事板图像将看起来像第一幅图像。

    enter image description here

    选择“Make cure segue”。

    enter image description here