Контроллер представления становится черным после возвращения из другой вкладки - PullRequest
0 голосов
/ 09 января 2019

Я получаю черный экран при возврате в контроллер представления из другой вкладки.

У меня есть следующий поток:

  1. Панель вкладок с 5 вкладками.
  2. Контроллер представления под названием «Точки», который содержит кнопку «Награды», которая переходит к другому контроллеру представления с именем «Награды». а. Также есть кнопка «Точки», которая ничего не делает. б. Контроллер точек установлен в «Определить контекст» с. Segue настроен на модальное представление, а презентация настроена на Current Context. д. Существует также функция segue, называемая backFromRewards, которая используется для раскрутки.
  3. Контроллер представления Rewards также имеет кнопку «Точки», и эта кнопка настроена на возврат назад к контроллеру точек с помощью функции segue, называемой backFromRewards.

Цель описанной выше настройки состояла в том, чтобы всегда отображать панель вкладок, даже если видовой контроллер вознаграждений был представлен модально. Это работает до сих пор. Панель вкладок действительно всегда видна, и я могу переключаться между окнами управления «Точки» и «Награды», нажимая кнопки «Точки» и «Награды» соответственно. При необходимости я также могу переходить на другие вкладки.

Тем не менее, я получаю черный экран, когда я делаю следующее:

  1. В контроллере точек Points я выбираю кнопку Rewards. Это вызывает Rewards viewcontroller.
  2. Затем я переключаюсь на другую вкладку.
  3. Я возвращаюсь к исходной вкладке. Контроллер вознаграждений по-прежнему отображается.
  4. Затем я нажимаю кнопку «Точки», которая настроена на возврат к контроллеру точек.
  5. Это когда я получаю черный экран.
  6. Затем я могу перейти в другое место, а затем вернуться назад к контроллеру точек, и он вернется в нормальное состояние, избавившись от черного экрана.

Я немного понимаю, почему экран гаснет. Тем не менее, есть ли способ перезагрузить и сбросить весь view-контроллер, когда нажата кнопка табуляции? Возможно, это избавит от черного экрана. Иначе, есть ли другой способ, кроме модального представления, чтобы панель вкладок исчезла?

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Попробуйте установить modalPresentationStyle представленного контроллера, т.е. вознаградить ViewController, перейдя в инспектор атрибутов

enter image description here

0 голосов
/ 09 января 2019

Хорошо, думаю, я понял это.

Я добавил это в свой контроллер просмотра наград:

override func viewWillDisappear(_ animated: Bool) {
    self.dismiss(animated: true, completion: nil)
    super.viewWillAppear(true)
}

Сбрасывает контроллер вида следующим образом:

  1. В контроллере вида очков я нажимаю кнопку «Награды», и он переводит меня в контроллер вида вознаграждений.
  2. Затем я перехожу на другую вкладку и затем возвращаюсь обратно в контроллер представления точек.
  3. Теперь, это перезагружает Контроллер Представления Точек.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...