IOS对话框UIAlertView
1 //修改弹出对话框的样式 2 alertView.alertViewStyle = UIAlertViewStylePlainTextInput; 3 4 //根据索引获取指定的某个文本框 5 [alertView textFieldAtIndex :0] 6 [alertView textFieldAtIndex :0].text = her.name; 7 8 //通过UIAlertView的代理来监听对话框中的按钮的点击事件 9 //实现UIAlertView的 10 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 代理方法
实例代码:
1 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 2 CZHero *hero = self.heros[indexPath.row]; 3 UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitels:@"确定",nil]; 4 5 alertView.alertViewStyle = UIAlertViewStylePlainTextInput; 6 [alertView textFieldAtIndex:0].text = hero.name; 7 8 //记录当前点击行的行号 9 alertView.tag = indexPath.row; 10 [alertView show] 11 } 12 13 #pragma mark - alertView的代理方法 14 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger) buttonIndex{ 15 //判断点击的是哪个按钮 16 if(buttonIndex ==1){ 17 //获取文本框中的数据 18 NSString *name = [alertView textFieldAtIndex:0].text; 19 20 //修改模型数据 21 //根据行号,获取当前点击行的模型数据 22 CZHero *hero = self.heros[alertView.tag]; 23 hero.name = name; 24 25 //重新刷新TableView数据 26 //重新刷新整个TableView,UITableView会重新向 datasource请求数据 27 //重新调用数据源方法 28 //[self.tableView reloadData];//不好重新刷新整个TableView 29 30 //局部刷新 31 //创建一个indexPath对象 32 NSIndexPath *path = [NSIndexPath indexPathForRow:alertView.tag inSection:0]; 33 34 [self.tableView reloadRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationLeft]; 35 } 36 }