ios доступ к главному окну или вид

Я хотел бы знать, есть ли простой способ получить доступ к главному окну или просмотру в IOS. Что-то похожее:

[UIScreen mainScreen]

Спасибо.


person user346443    schedule 25.07.2011    source источник


Ответы (4)


Пытаться :

UIWindow *frontWindow = [[[UIApplication sharedApplication] windows]
                                                            lastObject];

или просто:

UIWindow *frontWindow = [[UIApplication sharedApplication] keyWindow];
person Community    schedule 25.07.2011
comment
keyWindow вернул мне ноль. lastObject вернул правильный результат. Спасибо. - person John Erck; 02.11.2013
comment
Вы должны использовать firstObject, а не lastObject. См. документацию по окнам - person harryhorn; 31.05.2014
comment
остерегайтесь keyWindow, смотрите мой ответ ниже - person diachedelic; 02.08.2018

Главное окно лучше всего найти с помощью UIWindow * mainWindow = [UIApplication sharedApplication].windows.firstObject;

Использование keyWindow может вернуть клавиатуру или окно UIAlertView, которое находится над окном вашего приложения.

person diachedelic    schedule 30.10.2013
comment
Это правильный ответ с объяснением! Я сломал голову, пытаясь понять, почему мой вид исчезает, когда есть оповещение. - person trickster77777; 31.10.2014

Если у вас есть указатель на какое-то подпредставление в окне, вы можете легко получить доступ к его окну:

UIWindow *window = mySubview.window;
person Caleb    schedule 25.07.2011

Просто умничка, работает из любого класса:

[(YourAppDelegate *)[[UIApplication sharedApplication] delegate] window];

Примечание: не забудьте импортировать класс appDelegate.

person Resty    schedule 27.10.2014