#iphone #ios #ipad #uiview
#iPhone #iOS #iPad #uiview
Вопрос:
Я пытаюсь отобразить пользовательский UIView поверх всех других представлений, сделав его модальным, который корректно работает как в книжной, так и в альбомной ориентации. Способ, которым я сейчас это делаю, заключается в создании прозрачного черного вида, который в основном затемняет весь экран, а затем добавляет поверх него мой пользовательский вид. Все работает отлично, за исключением того факта, что оно не ориентирует само свойство, когда находится в альбомной ориентации. Я думаю, это связано с тем, как я добавляю свой вид:
UIWindow* mainWindow = (((MyAppDelegate*)[UIApplication sharedApplication].delegate).window);
[mainWindow addSubview:self];
Кажется, что MainWindow ВСЕГДА находится в портретном режиме, независимо от фактической ориентации устройства, поэтому, даже когда я нахожусь в альбомной ориентации, мой пользовательский вид отображается вверх ногами, как если бы он был в портретном режиме. Мой основной viewcontroller — это navcontroller, который добавляет поверх него несколько пользовательских представлений, поэтому я действительно не хочу передавать ссылку на него полностью через мои представления, чтобы я мог использовать его выше.
Наконец, мой вопрос заключается в том, как мне правильно добавить свой пользовательский вид в основные окна, чтобы он был правильно ориентирован как в альбомной, так и в портретной ориентации и по-прежнему отображался по всему экрану.
Спасибо
Комментарии:
1. iphone или ipad? Какому контроллеру принадлежит «self», который вы добавляете в MainWindow? Почему ваш главный ViewController не может отправить модальный вид?
2. согласен; самым простым способом было бы вызвать presentModalViewController из вашего корневого контроллера просмотра.
Ответ №1:
Создайте и создайте новый UIWindow с более высоким zorder и добавьте к нему контроллер представления. Контроллер просмотра имеет встроенную логику для обработки поворота вида.