Как я могу исправить ошибку "Тема 1: сигнал SIGABRT"? - PullRequest
0 голосов
/ 13 октября 2019

picture of the connection inspector

Я создал ViewController с видом и кнопкой. Я объявил кнопку как выход и как Действие в viewcontroller. Кроме того, я передаю данные первого Viewcontroller второму Viewcontroller с помощью segue. Когда я нажимаю кнопку отмены, которая выполняет переход к первому контроллеру просмотра, я получаю сообщение об ошибке

Поток 1: сигнал SIGABRT.

Ошибка отображается в функции подготовки, которая передает данные. Я уже контролировал соединение инспектора. Я не знаю, что не так с моим кодом.

вот мой код:

 @IBAction func cancelButton(_ sender: Any) {
        performSegue(withIdentifier: "backToFirstScreen", sender: self)
    }


 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let tableViewVC = segue.destination as! tableViewController

        tableViewVC.passwordNotes3 = passwordNotes2
        tableViewVC.passwordCategory3 = passwordCategory2
        tableViewVC.passwordStrings3 = passwordStrings2

    }

1 Ответ

1 голос
/ 13 октября 2019

Я думаю, что проблема в том, что вы не создали «backToFirstScreen», который начинается во втором контроллере представления и заканчивается в первом контроллере представления.

Использование перехода для возврата к первому экрану немноготабу;Я бы заменил

performSegue(withIdentifier: "backToFirstScreen", sender: self)

на

self.dismiss(animated: true, completion: nil)

или, если вы используете навигационный контроллер

self.navigationController?.popViewController(animated: true)

Это позволяет вам отключить текущий контроллер вида, который вы ищетев и вернитесь к контроллеру представления, который представил его, без необходимости создавать переход, который идет в обратном направлении. Просто убедитесь, что у вас есть переход от первого контроллера представления ко второму контроллеру представления в этом порядке.

...