如何根据所选单元格对自定义单元格中的按钮进行相应编程? IOS

时间:2014-03-05 21:44:07

标签: ios uitableview custom-cell

所以我在notificationsViewController中有一个带有海关单元格的表。此tableView从jsonSerialization加载数据以显示数据,特别是customerID和checkinID

自定义单元名为checkInCell.m,.xib和.h。在此自定义单元格中,有两个按钮,一个用于接受签入并拒绝使用API​​调用签入。 (示例网址:api / CheckIn / checkInConfirmation?CustomerID =%@& MerchantID =%@& confirm =%@& CheckInID =%@“)

我的问题是如何将来自notificationViewController的customerID和checkinID传递给自定义单元格按钮,以便我可以执行接受和拒绝签到?

另外,如何重新加载表的数据,因为如果我想从checkinCell重新加载数据,我认为下面的代码不会起作用。

[self.notificationsTableview reloadData];

我试过做notificationViewcontroller.notificationsTableView重载数据,但我想我错过了什么。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

在你的tableView:cellForRowAtIndexPath:覆盖中,在使用dequeueCell访问你的单元格之后......或者通过加载nib文件,你需要使用customerID和checkinID配置检索到的单元格以及显示的任何其他信息。通常,tableView:cellForRowAtIndexPath看起来像:

-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
    MyCell* cell = [tableView dequeueCellWithReusableIdentifier:@"MyCell"];
    if(!cell)
    {
        cell = .... some other mechanism of loading cell from your nib file
    }

    // configure cell here
    cell.customerID = ...
    cell.checkinID = ...

    return cell;
}

请注意,如果您使用故事板,则“从nib文件加载”部分会大大简化,因为您可以使用dequeueCellWithReusableIdentifier:forIndexPath:并且它将“始终”为您返回一个单元格。

按钮的目标和操作应设置为nib文件中的单元格本身。现在,当按下按钮时,将执行自定义单元格上的方法,您可以访问上面配置中传入的数据。

我不确定你的问题是关于reloadData的。 reloadData将导致tableview(但不是你的控制器)中的所有数据从委托和dataSource(可能是你的控制器)重新加载如果你想强制只重新加载一个部分(或行),还有reloadSections。 ..和reloadRows ...变体。