Ошибка приведения с контроллером представления, созданным из раскадровки

У меня есть контроллер вида, который создает новый контроллер окна. Мне нужно передать объект в контроллер представления этого контроллера окна. Вот что у меня так далеко:

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) Есть ли лучший способ получить данные в новый контроллер представления?

1 ответ

Решение

Это простой выстрел в темноте, но вы установили имя класса контроллера представления в Интерфейсном Разработчике?

Другие вопросы по тегам