【问题标题】:Why can't I cast to my viewcontroller subclass within a storyboard?为什么我不能在情节提要中投射到我的视图控制器子类?
【发布时间】:2017-08-05 08:41:41
【问题描述】:

我有一个故事板,其中有一个窗口控制器和一个视图控制器。在代码中访问视图控制器最合理的方法是通过在所属窗口控制器中定义的访问器。

class TutorialHUDWindowController: NSWindowController {

    var tutorialHUDViewController: TutorialHUDViewController {
        get {
            return self.contentViewController! as! TutorialHUDViewController
        }
    }

}

一切编译正常,但在运行时尝试访问视图控制器时,应用程序崩溃并出现 sigabrt:

控制台会记录类似以下的错误消息:

MyApp[6178:329283] 路径 MyApp/Build/Products/debug/Myapp/Contents/Resources/TutorialHUDSyboard.storyboardc/NSWindowController-scR-w0-00.nib 的 Interface Builder 文件中的未知类 TutorialHUDViewController。 MyApp [6178:329283] 无法将(其他视图)出口从(NSViewController)连接到(其他视图):缺少设置器或实例变量 无法将“NSViewController”(0x7fff89ae9410)类型的值转换为“MyApp.TutorialHUDViewController”(0x1001f6a38)。 Myapp [6178:329283] 无法将类型“NSViewController”(0x7fff89ae9410)的值转换为“Thimble.TutorialHUDViewController”(0x1001f6a38)。

我在我的应用程序的其他地方使用了类似的投射模式并且一切正常,出了什么问题?

【问题讨论】:

    标签: xcode cocoa nsstoryboard


    【解决方案1】:

    在您的故事板中,自定义类 viewcontroller 引用还应该引用它所在的适当模块。如果它在哪里,请将其设置为“MyApp”或使用“从目标继承”选项。

    此外,您可能需要在再次构建之前“清理”以清除任何缓存的故事板编译。

    【讨论】:

      猜你喜欢
      • 2013-02-16
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多