Снимок интерфейса приложения кратковременно мигает после выхода приложения из приостановленного состояния. - PullRequest
0 голосов
/ 26 ноября 2018

Как мне добиться ожидаемого поведения?

Текущее поведение

Завершение работы приложения из приостановленного состояния вызывает кратковременную вспышку последнего снимка приложения, снятого ОС.

Порядок отображения вещей после запуска после прекращения приостановленного состояния:

  1. Изображение раскадровки экрана запуска
  2. Снимок приложения последнего видимого экрана - такой же, как вкнопка home инициировала многозадачное меню
  3. контроллер корневого просмотра с его начальным видом

ожидаемое поведение

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

Порядок рендеринга вещей после запуска после прекращения приостановленного состояния:

  1. Образ экрана раскадровки запуска
  2. Контроллер корневого представления с егоначальный вид

Копируется

  1. Запуск приложения
  2. Нажатие кнопки «Домой» - перемещение приложения в фоновый режим
  3. Двойное нажатие кнопки «Домой» - открытие многозадачного меню
  4. Проведение приложения вверх - чтобы закрыть его
  5. Открытие его снова

Мои настройки

Мои подклассы UIViewController реализованы полностью программно - без Xib и раскадровок.

LaunchScreen - это раскадровка.

Я явно убедился, что приложение не участвует ввосстановление состояния со следующим параметром в делегате приложения:

 func application(_ application: UIApplication,
      shouldSaveApplicationState coder: NSCoder) -> Bool { return false }

 func application(_ application: UIApplication, 
      shouldRestoreApplicationState coder: NSCoder) -> Bool { return false }

Мой Info.plist, имеет настройку:

 Application does not run in background = NO

Примечания

Я знаю о ignoreSnapshotOnNextApplicationLaunch() в контроллере UIViewController encodeRestorableState(with coder: NSCoder) метод, и вообще настройка восстанавливаемого состояния - за исключением того, что я не хочу иметь восстанавливаемое состояние.

Я хочу, чтобы приложение:

  • перезапускалось с нуля всякий раз, когда онопо какой-либо причине завершается
  • возврат из незавершенного приостановленного состояния
  • не мигает снимок приложения при запуске после завершения при приостановлении

Создание и уничтожение представленияв методах App Delegate applicationWillResignActive(application:) и applicationDidBecomeActive(application:) также не помогают.

Каков наилучший способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...