Ошибка приведения с контроллером представления, созданным из раскадровки
У меня есть контроллер вида, который создает новый контроллер окна. Мне нужно передать объект в контроллер представления этого контроллера окна. Вот что у меня так далеко:
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 ответ
Решение
Это простой выстрел в темноте, но вы установили имя класса контроллера представления в Интерфейсном Разработчике?