Как добавить вид наложения в UIWindow, который вращается

StackOverflow https://stackoverflow.com/questions/1625240

Вопрос

У меня есть приложение, которое вращается на некоторых (но не на всех) экранах, и я также хочу добавить UIView в качестве наложения, которое отображается на всех экранах, поэтому я решил добавить его в окно. Теперь проблема в том, что при повороте устройства экраны поворачиваются, а наложение не отображается.

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

Итак, как мне повернуть оверлей с интерфейсом, надеюсь, без необходимости добавлять код в каждый контроллер представления, который вращается, чтобы вращать оверлей с ним.

Это было полезно?

Решение

Я думаю, что ваши подозрения верны. Вы должны будете добавить подпредставление к каждому контроллеру представления. Я не знаю почему, но когда вы добавляете несколько представлений в качестве подпредставлений окна, только первое получает его - (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation, вызываемый при каждом изменении ориентации.

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

С наилучшими пожеланиями,

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top