2

我有一个实例化新窗口控制器的视图控制器。我需要将一个对象传递给该窗口控制器的视图控制器。这是我到目前为止所拥有的:

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) 有没有更好的方法将数据导入新的视图控制器?

4

1 回答 1

2

这是在黑暗中拍摄的一个简单镜头,但您是否在 Interface Builder 中设置了视图控制器的类名?

于 2017-07-15T19:04:22.480 回答