Подтвердить что ты не робот

DestinationViewController Segue и UINavigationController swift

Итак, у меня есть метод prepareForSegue:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "fromEventTableToAddEvent" {

        let addEventViewController: AddEventViewController = segue.destinationViewController as! AddEventViewController

        addEventViewController.newTagArray = newTagArray

    }
}

Однако во время выполнения приложение аварийно завершает работу, и журналы записывают это сообщение:

Не удалось отличить значение типа 'UINavigationController'

Ошибка возникает из-за того, что addEventController встроен в контроллер навигации, однако я не уверен, как настроить сеанс так, чтобы destinationViewController был установлен на NavigationController, но также позволяет передавать переменные в методе prepareForSegue к addEventController

Итак, как бы это сделать с помощью Swift?

Я очень ценю вашу помощь и время, которое вы можете предложить в ответ. Это помогает alot

4b9b3361

Ответ 1

Вам нужно только получить доступ к контроллеру навигации topViewController, который будет AddEventViewController. Вот код:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "fromEventTableToAddEvent" {

        let nav = segue.destinationViewController as! UINavigationController
        let addEventViewController = nav.topViewController as! AddEventViewController

        addEventViewController.newTagArray = newTagArray

    }
}