作者tonyshan (Iamyourfather)
看板MacDev
标题[问题] 如何让UIAlertController显示在前面
时间Sun Jan 25 19:36:03 2015
在AppDelegate 想做出错误时白色背景(whiteView)前面放UIAletController的dialog
但不管怎麽改都是whiteView在UIAlertController上面
如果把whiteView用sendSubviewToBack背景又会变成viewController的画面
虽然把UIAlertController改成用UIAlertView可以解决这个问题
不过有很多method想用UIAlertController去执行
以下简单的原码=>
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
// a为flag
//[self alert_Dialog:@"0"]
[self alert_Dialog:@"0"];
}
-(void)alert_Dialog :(NSString *)str
{
//_window.rootViewController = [[UIViewController alloc] init];
if ([str isEqualToString:@"1"]) {
NSLog(@"OK");
}else{
UIAlertController *alert =
[UIAlertController alertControllerWithTitle:@"错误" message:@"error" preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
//按下"确定"後结束程式
exit(1);
}
]];
//白色背景
[self whiteView];
[self.window.rootViewController presentViewController:alert animated:YES completion:nil];
}
}
-(void)whiteView
{
CGRect rect1 = [[UIScreen mainScreen] bounds];
UIView *myView = [[UIView alloc] initWithFrame:rect1];
myView.backgroundColor = [UIColor whiteColor];
[self.window addSubview:myView];
}
@end
===================================================================
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 126.185.171.225
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MacDev/M.1422185765.A.6E4.html
1F:→ darktt: presentViewController之後已经是不同的viewController了 01/25 20:38
2F:→ darktt: 所以key window会跟着换一个 01/25 20:38
3F:→ darktt: 呃,好像搞错了,应该是你不能在self.window上加view 01/25 20:40
4F:→ darktt: window的view的优先层级比rootViewController还要高, 01/25 20:42
5F:→ darktt: 所以永远会在最上方 01/25 20:42
6F:推 howdiun: 1. 抓出currentViewController 2.用UIAlertView 01/26 10:24
7F:→ uranusjr: UIAlertView 已经被 deprecated 了, 不要用 01/26 11:05
8F:推 tentenlee: 要支援IOS7 不能用UIALERTCONTROLLER吧? 01/26 13:09
9F:→ nobody1: 推楼上 还要并行一段时间再修整 01/26 15:53
了解 我今天再去试一下好了~
不过之所以用rootViewController是因为在AppDelegate之下的关系
如果没加上去的话会错误
※ 编辑: tonyshan (126.155.167.245), 01/27/2015 05:29:54
※ 编辑: tonyshan (126.155.167.245), 01/27/2015 05:33:05