Как узнать, когда контроллер представления представлен с использованием модального стиля представления «форма листа» - PullRequest
0 голосов
/ 11 июля 2019

Представляя контроллер вида модально, мы можем установить modalPresentationStyle на .formSheet:

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

В горизонтально компактной среде этот параметр работает так же, как UIModalPresentationStyle.fullScreen.

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

Класс горизонтального размера , представляющий контроллер представления , может сказать мне, что мне нужно знать (как упоминалось выше в документации Apple). Но это означает наблюдение изменений в traitCollection в каждом контроллере представления, которые могут представить мой модальный режим, просто чтобы они передавали их в контроллер модального представления.

Есть ли какой-нибудь способ для самого контроллера модального представления узнать, какой стиль он использует, и получать оповещения при его изменении, чтобы он мог ответить?

1 Ответ

0 голосов
/ 12 июля 2019

Один слегка грубый способ хотя бы узнать класс размера приложений:

UIApplication.shared.delegate?.window??.rootViewController?.traitCollection

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