无法为TableViewCell设置特定于行中对象的按钮操作

时间:2014-10-23 04:47:18

标签: ios arrays uitableview uibutton

我为tableView设置了一个TableViewCell类。我在单元格中删除了一个按钮并将其连接到TableViewCell.h。我希望按下该按钮的操作,以执行特定于行中显示的对象的操作。例如,按下它时应该保存对象属性“name”,它不会显示在任何标签中。

在我的TableViewCell.h中,我设置了按钮操作和委托:

- (IBAction)pressBtn:(id)sender {
    [self.delegate tableViewCell:self];
}

在我的TableViewController.m中,我包含一个委托:

-(void)tableViewCell:(tableViewCell *)cell {
//...some code...//
            NSIndexPath *indexPath;
            Car *car = self.cars[indexPath.row];
            [newCar setValue:car.name forKey:@"name"];

问题是我返回第一个单元格中的任何内容,即使我单击第2个,第3个或第4个单元格。 self.cars是一个数组。 如何指向所选单元格的对象(及其属性)?

4 个答案:

答案 0 :(得分:0)

为您为button tag创建的每个按钮设置UITableViewCell

我要做的是将UIButton标记设置为indexpath.row值。

答案 1 :(得分:0)

给按钮一个像Sreejith提到的标签。准备好标签后,您可以通过标签获取单元格

- (IBAction)pressBtn:(id)sender {
int btnTag=[sender tag];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:btnTag];
//and perform operations on that cell.
}

答案 2 :(得分:0)

在tableViewController中,使用像[tableView indexPathForCell:cell]这样的代码来获取indexPath,你想要的是行。

答案 3 :(得分:0)

如果Car实例的选择不完全依赖于视图控制器,请尝试使用

TableviewCell.h中添加@property for Car

@property (nonatomic, strong) Car *car;

和viewController中的cellForRowAtIndexPath:方法

Car *car = self.cars[indexPath.row];
cell.car = car;

因此当前单元格的汽车实例将位于该自定义单元格类中。这样你就可以对该对象进行任何操作。即

- (IBAction)pressBtn:(id)sender {

     //you can directly call self.car to get current car instance
     //and do the stuff here itself
}