У меня есть вторичное ViewController, который появляется программно с помощью раскадровки Segue:Swift dismissViewController из Segue - Macos
func actioncall()
{
performSegue(withIdentifier: "showIgnoreVC", sender: self)
}
)
Эта функция является частью основного ViewController, и называется через NSNotification из AppDelegate, который, в свою очередь, запускается нажатием на пункт меню.
Однако, даже несмотря на то, переход связан с основной ViewController, следующий код не отклоняет вторичный вид:
@IBAction func dismiss(_ sender: Any)
{
print("Hello? Gonna close?")
self.presenting?.dismissViewController(self)
}
Там нет ошибок, функция вызывается при правильной Отклонить кнопку щелкните, но вторичное представление не будет отменено. Я пробовал все варианты отклоненияViewController безрезультатно.
Когда я использую кнопку на главном экране, чтобы активировать один и тот же сеанс, все работает так, как предполагается. Я просто не хочу загромождать основной вид с кучей кнопок.
Любые идеи приветствуются, большое вам спасибо.
Когда эта линия 'self.presenting? .dismissViewController (self)' выполняется, какова ценность 'self.presenting'? –
@DaveWeston, хороший вопрос. Используя 'let x = self.presenting! как NSViewController', приложение вылетает с ** фатальной ошибкой: неожиданно найдено нуль при развертывании необязательного значения **. По-видимому, нет представления viewController. –