UITableViewCell原型的IBActions

时间:2013-08-27 18:32:47

标签: ios uitableview ibaction

到目前为止,已经阅读了一些帖子,例如thisthis,但它们对我的情况并没有真正帮助。

我正在使用'普通'风格的UITableViews为iPad创建动态表单。我在页面上有多个不同的UITableViews,所以我将一个单独的对象定义为服务器作为我的数据源和委托。我理解如何使用数据源更改每个单元格的文本;但是,我不知道如何将原型单元格中的UITextFields链接到IBAction。我可以弄清楚如何为我表中的所有文本字段创建单个IBAction,这样它们都会更新相同的数据,但我不知道如何让每个UITextField与我的数据源一一对应。< / p>

这是我的原型单元格:

My prototype cell

到目前为止

和我的代码:

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myPrototypeCell"];

    UILabel *buildingNumber = (UILabel *)[cell viewWithTag:100];        
    buildingNumber.text = [@"Building " stringByAppendingString:self.dataSource[indexPath.row][@"buildingNumber"]];

    return cell;
}

self.dataSource是NSMutableDictionaries的NSMutableArray。 任何帮助都表示赞赏。

3 个答案:

答案 0 :(得分:1)

我最初认为你指的是IBOutlets所以我之前的回答是错误的,但固有的想法仍然是相同的。

除非细胞是子类,否则您不能从原型细胞中获得IBActions或IBOutlet。如果单元格是静态的,您可以这样做,而不是它可以帮助您的情况。对UITableViewCell进行子类化并不是太难或太糟糕,事实上如果将来你想要在TableView上加快速度,那么这就是众多启动方式之一。

答案 1 :(得分:0)

本教程提供了一些处理表视图单元格内信息的不同选项:

http://mobile.tutsplus.com/tutorials/iphone/customizing-uitableview-cell/

我几乎总是使用UITableViewCell子类来处理单元格内的出口和操作。但这应该是您根据自己的架构做出的决定。

希望这有帮助!

答案 2 :(得分:0)

你需要单一的所有textField.So执行以下操作:

获取文本字段作为您的标签

UITextField *yourTextField = (UITextField *)[cell viewWithTag:101]; 
[yourTextField addTarget:self action:@selector(clickTextField:) forControlEvents:UIControlEventEditingChanged];

clickTextField方法将为每个文本字段调用。

希望这有帮助。

编辑:忘记提及,您可以设置UItextField的委托并在UITextFieldTextDidChange中获取通知:委托方法