UIWindow + проблема блокировки экрана - PullRequest
1 голос
/ 13 июня 2019

прямо в точку: наше приложение имеет UITableView с UITableViewCell, которое имеет AVPlayerViewController внутри (его вид) + пользовательские элементы управления видео. Одним из элементов управления является режим fullscreen . Обратите внимание, что все работает отлично - загрузка видео, повторное использование, даже на весь экран.

Полноэкранный режим основан на создании нового UIWindow, установке его rootViewController для видеоплеера и создании его keyAndVisible - в основном показ полноэкранного AVPlayerViewController из подпредставления ячейки при нажатии

Проблема возникает, когда пользователь блокирует свое устройство - после разблокировки полноэкранное окно «исчезает», и приложение «зависает» / застревает на предыдущем экране (список с ячейкой видео, текстовые ячейки .. - один что сделало новый UIWindow)

UIWindow (видео окно) есть, но без содержимого (без подпредставлений, VC ..) поверх основного (приложение, список табличных представлений ..) UIWindow - см. картинки .

Эта проблема не происходит на симуляторе - только реальные устройства.

Просмотр отладки иерархии перед блокировкой устройства и показом видео в полноэкранном режиме (с новым UIWindow):

View debug before freeze

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

View debug after freeze

Есть ли какое-нибудь возможное исправление? Или лучший способ представления AVPlayerViewController из UITableViewCell (во время воспроизведения и без остановки видео)?

Примечание: ошибка возникает, даже если мы удаляем изменение ориентации ландшафта / портрета, похоже, что проблема связана с UIWindow

PS: извините за сокрытие имен на картинках - NDA ...

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