У меня есть HomeViewController
, который открывает WelcomeViewController
с помощью перехода и имеет тип Sheet.
В WelcomeViewController
Пользователь вводит информацию, а затем закрывает (удаляет) ее. После закрытия WelcomeViewController
я хочу обновить HomeViewController
, изменив значение String
в TextField
.
Проблема в том, что ViewDidAppear
в HomeViewController
не вызывается после отклонения WelcomeViewController
. У меня не было этой проблемы раньше при разработке для iOS.
Как я могу это исправить? Я пытался вызвать его вручную, но возникли проблемы, потому что мой IBOutlets
был установлен на ноль, и я не мог изменить текст в своем TextField
.
Это код, который вызывает переход:
self.performSegue(withIdentifier: "welcome", sender: self)
это мой viewDidAppear
в HomeViewController
:
override func viewDidAppear() {
super.viewDidAppear()
if (CoreDataAccess().countUsers() == 0) {
self.performSegue(withIdentifier: "welcome", sender: self)
} else {
//continue execution..
}
}
В WelcomeViewController
я отклоняю ViewController
, используя этот код
dismiss(self)
prepare(for segue:)
? Может быть, передать экземплярHomeViewController
? Кроме того, я никогда не использовал переход типа Sheet, но зачем создавать переход для раскрутки? - person dfd   schedule 07.11.2018prepare(for: segue:)
... почему? Этот стандартный способ передать исходный контроллер представления его целевому. Вы так и не ответили @ullstrm... почему бы не попробовать использовать делегата? Он работает очень хорошо, когда представляет другой контроллер представления из одного. Наконец, @Kevinosaurio помог? Или, по крайней мере, дать вам правильное направление? Теперь вам нужно предоставить что-то еще.... - person dfd   schedule 07.11.2018