我有一个实例化新窗口控制器的视图控制器。我需要将一个对象传递给该窗口控制器的视图控制器。这是我到目前为止所拥有的:
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) 有没有更好的方法将数据导入新的视图控制器?