如何通过UIButton传递参数

时间:2014-07-20 00:04:47

标签: ios objective-c uibutton

我必须上课: existUserView和existUserCustomCell。

existsUserView中的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ExistUserCustomCell *cell = (ExistUserCustomCell*)[tableView dequeueReusableCellWithIdentifier:@"ExistUserCustomCell"];

    KidManager *kid = [self.kidsArray objectAtIndex:indexPath.row];
    cell.kidName.text = kid.firstName;
    if([kid.inside isEqualToString:@"1"]){
        cell.kidStatus. text = @"some string";
    }else{
        cell.kidStatus.text = @"some string";
    }

    return cell;
}

existsUserCustomCell中的代码:

- (IBAction)reportMissing:(id)sender {

}

- (IBAction)callTeacher:(id)sender {

}

我需要从' existUserView'传递数据。在&exists; existsUserCustomCell'中的按钮功能当我按下它们时要知道那一行。 我怎么能以最好的方式做到这一点?

1 个答案:

答案 0 :(得分:2)

如果需要将数据从视图控制器传递到单元格,请将属性(或两个或三个)添加到单元类中。在cellForRowAtIndexPath中设置单元格时设置属性。然后,单元格的方法(包括按钮处理程序)可以根据需要访问数据。

向您的单元格类添加属性:

@interface ExistUserCustomCell : UITableViewCell

// add this to anything you have
@property (nonatomic, strong) KindManager *kid;

@end

现在您的按钮方法可以访问:

- (IBAction)reportMissing:(id)sender {
    // access self.kid to get data
    // anything else you need
}

然后在表视图控制器中:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ExistUserCustomCell *cell = (ExistUserCustomCell*)[tableView dequeueReusableCellWithIdentifier:@"ExistUserCustomCell"];

    KidManager *kid = [self.kidsArray objectAtIndex:indexPath.row];
    cell.kid = kid;
    cell.kidName.text = kid.firstName;
    if([kid.inside isEqualToString:@"1"]){
        cell.kidStatus. text = @"some string";
    }else{
        cell.kidStatus.text = @"some string";
    }

    return cell;
}

我猜这是您在单元格中需要的KidManager数据。根据需要进行调整。

BTW - 如果我的猜测是正确的,那么单元格应该使用数据设置自己,而不是使用cellForRowAtIndexPath方法中的逻辑。