У меня есть View Controller, который показывает таблицу v c как всплывающее окно. Когда я выбираю строку в этом всплывающем окне, tv c отклоняется, выполняется метод делегата, и текст метки на моем исходном v c должен быть изменен. Метка должна быть изменена путем вызова этого метода делегата:
func languageDidChange() {
//Force view to load, so that languageLabel is not nil
self.loadViewIfNeeded()
languageLabel.text = "Scan-Language: " + LanguageTVC.language
}
Текст метки изменяется (если я распечатываю его справа), но это изменение не отображается на контроллере представления. (Я должен вызвать loadViewIfNeeded, потому что, если я этого не сделаю, моя метка будет nil.)
Мой метод didSelectRow, где я вызываю метод делегата:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
LanguageTVC.selectedLanguageShort = languages[indexPath.row].shortName
delegate!.languageDidChange()
self.dismiss(animated: true, completion: nil)
}
Как я могу изменить текст visible?
РЕДАКТИРОВАТЬ:
Я заменил всплывающий переход на показ шоу и добавил показ шоу из ячейки табличного представления в исходный контроллер представления в раскадровке. Я удалил заявление об отклонении и весь делегат. Часть для изменения метки теперь находится в методе viewDidLoad.
Это всего лишь обходной путь, потому что у меня нормальный переход и никакого всплывающего окна, но оно работает.