A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 余丽丽 高级黑马   /  2015-8-12 23:11  /  455 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

* 点击某行, 弹出对话框, 然后修改数据, 再把数据刷新到UITableView上。
1> 监听每个cell的点击事件
* 通过代理来监听,
** 选中某行: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
** 取消选中某行: - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath


2> 弹出UIAlertView
* 修来弹出对话框的样式
alertView.alertViewStyle = UIAlertViewStylePlainTextInput;

* 根据索引获取指定的某个文本框
[alertView textFieldAtIndex:0]
[alertView textFieldAtIndex:0].text = hero.name;

* 通过UIAlertView的代理来监听对话框中的按钮的点击事件
* 实现UIAlertView的 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex代理方法

/** 参考代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
CZHero *hero = self.heros[indexPath.row];

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];

alertView.alertViewStyle = UIAlertViewStylePlainTextInput;

[alertView textFieldAtIndex:0].text = hero.name;

// 记录当前点击的行的行号
alertView.tag = indexPath.row;
[alertView show];
}

#pragma mark - alertView的代理方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
// 判断点击的是哪个按钮
if (buttonIndex == 1) {
//获取文本框中的数据
NSString *name = [alertView textFieldAtIndex:0].text;

// 修改模型数据
// 根据行号, 获取当前点击的行的模型数据
CZHero *hero = self.heros[alertView.tag];
hero.name = name;

// 重新刷新TableView数据
// 重新刷新整个TableView, UITableView会重新向datasource请求数据
// 重新调用数据源方法
// [self.tableView reloadData]; // 不好重新刷新整个TableView


// 局部刷新
// 创建一个indexPath对象
NSIndexPath *path = [NSIndexPath indexPathForRow:alertView.tag inSection:0];



[self.tableView reloadRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationLeft];

}
}
*/

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马