ios8之前,针对弹出消息,一般使用的都是UAlertView,UIActionSheet。无论是在pad,还是phone设备下,使用起来都是非常方便的。
但是ios8出来后,原来的项目适配ios8的情况下,发现UIActionSheet不好用了,查看苹果的官方文档发现,UIActionSheet已经废弃了,用alertController替代。
主要用法如下:
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"登录失败,请重新输入用户名和密码" message:message preferredStyle:UIAlertControllerStyleAlert];
// 按钮
UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
[self login];
}];
[self presentViewController:alertController animated:YES completion:nil];
如果是想要在弹出消息框中可以增加输入。
[alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {
textField.placeholder = @"userName";
}];
[alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {
textField.placeholder = @"password";
[textField setSecureTextEntry:YES];
textField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
}];
但是注意,addTextFieldWithConfigurationHandler 该方法只能针对UIAlertControllerStyleAlert样式如果是UIAlertControllerStyleActionSheet样式,系统是崩溃的。
在pad设备上,如果想要使用UIAlertControllerStyleActionSheet样式的alertController,无法使用presentViewController弹出,需要使用UIPopoverController弹出。
而在phone设备上不支持UIPopoverController的。