UITextView установлен пустым и не обновляется при возврате в UIViewController - PullRequest
0 голосов
/ 07 марта 2019

Допустим, у меня есть два контроллера UIView: view1 и view2 .

view1 - первый (основной) viewController для TabBarController, и есть кнопка B1 , которая запускает переход к view2 . У меня есть UITextView в view1 (называемый textView ), который обновляется несколько раз, используя следующий код:

DispatchQueue.main.async {
 self.textView.text = self.textView.text + "some value"
}

Когда я захожу в view2 с помощью кнопки B1 , все еще фоновые процессы выполняются для view1 , и они пытаются обновить textView используя приведенный выше код, но мы находимся в view2 и обновление текста не может произойти. В результате, когда я возвращаюсь к view1 , textview становится пустым и больше не обновляется. Любое предложение о том, как решить эту проблему?

Другими словами, некоторые сетевые коммуникации часто выполняются в view1 , и они обновляют textview . Он работает, пока я нахожусь в view1 . Но когда я перехожу ко второму viewController ( view2 ) и возвращаюсь к view1 (используя Segue ), textview становится пустым и никогда не обновляется, даже если предыдущие фоновые процессы работали и пытались обновить текст, когда я был в view2 (поэтому моя проблема в том, что они пытаются обновить первый объект textView, а не второй, Наверное?)

1 Ответ

0 голосов
/ 07 марта 2019

Добавить метод, состоящий из кода выше или самого кода выше, в viewWillAppear Метод view1 (VC)

т.е.

override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        DispatchQueue.main.async {
            self.textView.text = self.textView.text + "some value"
        }
    }

или

func someMethod() {
        DispatchQueue.main.async {
            self.textView.text = self.textView.text + "some value"
        }
    }
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        someMethod()
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...