UIStoryboardSegue не может быть выполнен во второй раз - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь перейти от неэффективных переходов в моем приложении (в которых представления накладываются друг на друга и никогда не отклоняются) на эффективные, в которых представления отклоняются, когда я с ними заканчиваю.

В этом конкретном случае у меня есть Root View Controller, который открывает контроллер View Settings.Когда я выхожу из настроек, я могу перезагрузить Root View должным образом, чтобы отразить любые изменения, сделанные в настройках.Проблема возникает, когда я пытаюсь вновь открыть контроллер просмотра настроек.Мой IBAction запущен, и я получаю из него оператор печати, но представление не отображается.

Почему оно показывается в первый раз, а не во второй?

Я пробовал несколько вариантов перезагрузки View Controller.Представление перезагружается так, как я хочу, но просто не открывается окно «Настройки» во второй раз.

override func viewWillAppear(_ animated: Bool) {
    if didOpenFromSettings == true {
             reloadViewFromNib()
             loadTheView() //Runs the same actions as viewDidLoad()

             collectionView.reloadData()

     }
}

@IBAction func settingsButtonPressed(_ sender: UIButton) {
    print("User attempted to enter settings menu.")

    performSegue(withIdentifier: "Settings View", sender: self)
}

Вот как выглядит процесс выхода из настроек:

@IBAction func settingsExitButtonPressed(_ sender: UIBarButtonItem) {

    dismiss(animated: true, completion: nil)

//  This is used to let the Root View know to only reload itself 
//  when coming from the settings.
    didOpenFromSettings = true


}
...