У меня есть приложение, которое поддерживает всю ориентацию, но в некоторых случаях я хотел бы временно ограничить его только портретом. Это не сочетание контроллеров представлений, которые должны быть только портретами, а те, которые могут быть любой ориентацией, скорее, я хотел бы отключить изменения ориентации, когда пользователь нажимает кнопку на экране, в то время как контроллер просмотра остается неизменным.Временное ограничение приложения на конкретную ориентацию
При поиске способов ограничения ориентации пользовательского интерфейса UIViewController
появляются методы, которые появляются supportedInterfaceOrientations()
и preferredInterfaceOrientationForPresentation()
. И не совсем работа для меня:
supportedInterfaceOrientations()
работает только один раз, когда представление будет загружен, так что даже если я его возвращаемое значение условной, она не запускается после изменения состояния.- Контроллеры моего представления представлены внутри стека навигации, а не модально, поэтому
preferredInterfaceOrientationForPresentation()
не запускается вообще.
Есть ли способ добиться эффекта, который я ищу?
Когда вы говорите, что 'supportedInterfaceOrientations()' запускается только при загрузке представления, что вы имеете в виду? Можете ли вы рассказать об этом? –
Значение, когда инициализируется и загружается viewController, выполняется метод. Затем пользователь нажимает кнопку, а флаг устанавливается для ограничения ориентации. Затем, если я вращаю устройство, он вращается, и я вижу в отладчике, что 'supportedInterfaceOrientations()' никогда не запускался снова после этого первого раза. Могу ли я заставить ОС обновлять свои данные на поддерживаемых ориентациях, снова вызвав метод? – SaltyNuts