点击自定义按钮时触发事件

创建了一个TableView,然后创建了自定义的单元,其中放了一个Button。现在我想要实现,点击索引的时候获取tableview的索引内容,但是点击了对应索引的按钮之后,没有给出索引列表。

我的tableview类名是SubMenuViewController,然后单元类名是SubMenuCell

SubMenuViewController代码如下:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
ModelLocator *model = [ModelLocator getInstance];
    static NSString *simpleTableIdentifier = @"SubMenuCell";

    SubMenuCell *cell = (SubMenuCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil)
    {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SubMenuCell" owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }

    if (model.foodSubItemList) {
        FoodSubItemVO* foodSubItemTemp = [model.foodSubItemList objectAtIndex:indexPath.row];
        [cell.lbSubFoodItem setText: foodSubItemTemp.foodSubItemName];
        [cell.lbPrice setText: foodSubItemTemp.price];
        [cell setIndexPath:indexPath];
     }
return cell;
}

SubMenuCell代码:

- (IBAction)addItemIntoOrder:(id)sender {
        NSLog(@"@%",indexPath);
        NSLog(@"@%",indexPath.row);
}

在**SubMenuCell.h**文件中声明了indexPath

你的NSLog有错误; 换成下面的代码,注意 % 和@ 顺序变了。

- (IBAction)addItemIntoOrder:(id)sender 
{
    NSLog(@"%@",indexPath);
    NSLog(@"%@",indexPath.row);
}

除了上面有人回答的将@%改成%@外呢,还有就是在输出NSInteger类型时需要的占位符是%d

NSLog(@"%d",[indexPath row]);