iOS 5 UIWindow makeKeyAndVisible закрывает модальное окно

У меня есть сценарий, в котором я представляю контроллер модального представления из rootViewController главного окна. Пока он загружает содержимое этого модального окна, я переключаюсь на другое окно загрузки, которое я делаю ключевым и видимым.

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

Интересно, что если я выполняю [UIWindow makeKeyWindow] при переключении обратно в главное окно, проблем не возникает. [UIWindow makeKeyAndVisible] является причиной проблемы. Является ли [UIWindow makeKeyWindow] приемлемой альтернативой?

Это только iOS 5. В iOS 6 проблем нет. Я не поддерживаю iOS 4. Кто-нибудь знает, что здесь может происходить?


person Fergal Rooney    schedule 25.10.2012    source источник
comment
вы не должны использовать более одного окна, за исключением других дисплеев, таких как vga out   -  person Bastian    schedule 26.10.2012
comment
Я наблюдаю такое же поведение. Вы только что решили использовать makeKeyWindow и все в порядке?   -  person strawtarget    schedule 05.01.2013
comment
Бастиан, не могли бы вы уточнить, почему использование более одного окна не является хорошей практикой. Я не вижу в документах ничего, что указывало бы, что приложение должно или должно иметь только одно окно. Ссылка на класс UIWindow гласит: если приложение не может отображать содержимое на экране внешнего устройства, приложение имеет только одно окно.   -  person Fergal Rooney    schedule 17.10.2013


Ответы (2)


У меня такое же поведение, и, поскольку в документации указано, что метод makeKeyAndVisible является методом удобства, мне кажется законным заменить вызов makeKeyAndVisible рабочим кодом:

[window makeKeyWindow];
window.hidden = NO;

Понятия не имею, что не так, но похоже на баг.

person Alexey Kozhevnikov    schedule 05.03.2013
comment
Спасибо за ваш ответ. Я попытался сделать выше, и все выглядит хорошо! - person Fergal Rooney; 03.05.2013

Это определенно ошибка в реализации iOS 5 UIWindow. Я столкнулся с этим странным поведением, и ответ Алексея - путь.

person Denis Mikhaylov    schedule 24.04.2013