Я iOS-разработчик, пытающийся сделать небольшое macOS-приложение.У меня есть раскадровка, и у меня есть два NSWindowController с их viewController.
При нажатии кнопки в первом (начальном) контроллере я хочу другое окно (с его viewController).Я пробовал две вещи:
- Создать переход между VC1 и Window2, присвоив ему имя и вызвав его.
- Создание экземпляра с помощью
self.storyboard?.instantiate(..)
.
Обе эти работы - когда я запускаю это через XCode.Но если я закрываю Xcode и просто запускаю полученный продукт, он падает, как только я пытаюсь открыть следующий viewController, говоря:
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Illegal instruction: 4
Termination Reason: Namespace SIGNAL, Code 0x4
Terminating Process: exc handler [32282]
Application Specific Information:
Performing @selector(ok:) from sender _NSPaddedButton 0x600003d0ac40
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 com.my.app 0x000000010d3e998e FirstViewController.openFile(at:) + 734 (SecondViewController.swift:44)
1 com.my.app 0x000000010d3e95e9 closure #1 in FirstViewController.openFile(_:) + 249
Я сейчас использую это, чтобы создать его экземпляр:
if let w = storyboard?.instantiateController(withIdentifier: "secondWindowIdentifier") as? NSWindowController{
if let d = w.contentViewController as? SecondViewController{
d.doSomething(someData: myData)
self.presentAsModalWindow(d)
}
}