Ярлык Swift не обновляется - PullRequest
       23

Ярлык Swift не обновляется

0 голосов
/ 06 февраля 2020

У меня есть 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.

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

...