我有一个实例化新窗口控制器的视图控制器。 我需要将一个对象传递给该窗口控制器的视图控制器。 以下是我到目前为止的情况:
let storyboard = NSStoryboard(name: "Main", bundle: nil)
if let windowController = storyboard.instantiateController(withIdentifier: "customerEditWindowController") as? NSWindowController
{
let viewController = windowController.contentViewController as! EditCustomerViewController
viewController.customer = customer // (An object)
windowController.window?.makeKeyAndOrderFront(self)
}
窗口按预期显示,然后Xcode陷入调试器并显示错误:
无法将类型'NSViewController'(0x7fffd1dcc4e0)的值转换为 'inventory2.EditCustomerViewController'(0x100011660)。
我很困惑,因为我的EditCustomerViewController扩展了NSViewController。
class EditCustomerViewController: NSViewController
1)为什么不能将NSViewController转换为EditCustomerViewController?
2)有没有更好的方法将数据导入新的视图控制器?
答案 0 :(得分:1)
在黑暗中这是一个简单的镜头,但你是否在Interface Builder中设置了视图控制器的类名?