UIView выше UIAlertView

В моем приложении используется экран блокировки. Иногда UIAlertView теперь, когда пользователь отправляет приложение в фоновый режим и снова выводит его на экран, UIAlertview отображается над экраном блокировки. Есть ли возможность добавить UIViewControllerвыше всего, то есть выше UIAlertView?

2 ответа

Решение

Вы должны иметь как это

UIWindow *mySpecialWindowForLockScreen = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];

//"Hey iOS Please put this window above all alert view"
mySpecialWindowForLockScreen.windowLevel = UIWindowLevelAlert+100;

UIViewController *lockScreenViewController = [[UIViewController alloc]init];//Lock Screen

lockScreenViewController.view.frame = mySpecialWindowForLockScreen.bounds;

mySpecialWindowForLockScreen.rootViewController = lockScreenViewController;


// In lockScreenViewController view you can add lock screen images and other UI stuff
mySpecialWindowForLockScreen.rootViewController.view.backgroundColor = [UIColor greenColor];

[mySpecialWindowForLockScreen makeKeyAndVisible];

Всякий раз, когда вы хотите скрыть окно LockScreen, просто скройте его с помощью setHidden:YES.

Существует три вида UIWindowLevel, самый большой из которых будет показан над другим окном.

Поэтому я предлагаю вам использовать UIWindow для создания экрана блокировки и позволить его уровню окна больше, чем UIWindowLevelAlert,

В основном их значения:

 UIWindowLevelNormal = 0.000000;
 UIWindowLevel UIWindowLevelAlert = 2000.000000;
 UIWindowLevel UIWindowLevelStatusBar = 1000.000000;

вот почему окно с предупреждением будет отображаться над другим окном. Попробуйте.

Другие вопросы по тегам