先说一下今天犯的错误,由于是写Demo,直接把UIAlertController写在了ViewDidLoad中了,结果并没有出现提示框,且导致了以下错误:
上网查了一下,原因是PresentViewController的时候,ViewDidLoad还没有执行完成.所以必须要想办法延时加载才行.我加了一个Button,点击之后才出现提示框,这样就好了.
UIButton * btn =[UIButton buttonWithType:UIButtonTypeSystem];
btn.frame = CGRectMake(50, 50, 80, 40);
[btn setTitle:@"弹出" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];ios9中,UIAlertController 替代了 UIAlertView 和 UIActionSheet,下面就介绍一下UIAlertController.
-(void)btnClick
{
//初始化提示框
UIAlertController * alert =[UIAlertController alertControllerWithTitle:@"Test" message:@"abcdefg" preferredStyle:UIAlertControllerStyleAlert];
/*
* UIAlertControllerStyleActionSheet 是显示在屏幕底部
* UIAlertControllerStyleAlert 是显示在中间
*/
//创建按钮 UIAlertActionStyle方式有三种 常规(default)、取消(cancel)以及警示(destruective)。
UIAlertAction * cancel =[UIAlertAction actionWithTitle:@"cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction * action){
//点击按钮的响应事件
NSLog(@"cancel");
}];
UIAlertAction * commit =[UIAlertAction actionWithTitle:@"commit" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action){
NSLog(@"commit");
}];
// UIAlertAction * destructive =[UIAlertAction actionWithTitle:@"destructive" style:UIAlertActionStyleDestructive handler:nil];
//添加按钮
[alert addAction:cancel];
[alert addAction:commit];
// [alert addAction:destructive];
//显示
[self presentViewController:alert animated:YES completion:nil];
}
成功后 即 希望帮助到你们.
本文探讨了在iOS应用开发中遇到的问题:如何正确使用UIAlertController以避免ViewDidLoad未执行完成导致的提示框无法正常显示。通过实例演示了一个解决方法,即通过添加一个Button,使得用户点击后才能触发UIAlertController的显示。同时介绍了UIAlertController作为替代UIAlertView和UIActionSheet的功能,以及如何创建和配置UIAlertController,包括添加按钮和显示操作。
2074

被折叠的 条评论
为什么被折叠?



