一、UIAlertView:警告弹出窗口。主要用于提示用户一些操作后果,像退出程序等。一般如下代码创建一个警告窗口。
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil
message:@"是否退出当前账号?" delegate:self
cancelButtonTitle:@"否" otherButtonTitles:@"是", nil];
[alert show];//调用show才会显示警告。
如何实现响应“否”、“是”按钮呢?这需要它的代理对象实现UIAlertViewDelegate协议中的方法:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex == 1) {
[UserData clearUser];
LoginViewController *next = [[LoginViewController alloc] init];
[self.navigationController pushViewController:next animated:YES];
}
}
警告窗口上的按钮从左向右编号从0开始一次增加。所以可以通过判断buttonindex来知道用户选择了哪个按钮。
二、UIActionSheet:动作表单。也是弹出一个菜单供用户选择相应的操作。
UIActionSheet *sheetView = [[UIActionSheet alloc] initWithTitle:@"修改头像"
delegate:self cancelButtonTitle:@"取消"
destructiveButtonTitle:nil otherButtonTitles:@"从相册选择",@"拍照", nil];
sheetView.tag = 1;
[sheetView showInView:self.view];
要响应你的选择也需要当前代理self实现UIActionSheetDelegate协议。注意其button编号是从other button开始不编号 cancel button.
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
if (actionSheet.tag == 1) {//头像
if (buttonIndex == 0) {
}else if (buttonIndex == 1){
}
}else if(actionSheet.tag == 2){//性别
if (buttonIndex == 0) {
sexlab.text = @"男";
}else if (buttonIndex == 1){
sexlab.text = @"女";
}
}
}