在UITableview行中传递IBAction按钮方法的值

时间:2010-11-09 15:07:57

标签: iphone uitableview didselectrowatindexpath

我有一个名为member id的值,我想将它发送到另一个视图控制器,如果我将以下内容放在didSelectRowAtIndexPath中,该值将传递给变量“member”。

int memberIndex = [indexPath indexAtPosition: [indexPath length] - 1];
    member = [[tableDataSource2 objectAtIndex: memberIndex] objectForKey:@"Memberid"];

如果将它放在cellForRow中,当然它会在创建的每一行中重写。我在每一行都有一个启动viewController的按钮,我希望按钮动作抓取行“member”并将其传递给新控制器。是否有“在索引路径方法中使用didSelectButton”或者是一种在运行中获取它的方法?

任何想法都会很棒。这是我第一次在UiTableview上添加按钮。

由于

2 个答案:

答案 0 :(得分:1)

为什么不使用配件视图?它是一个内置按钮,您可以使用任何想要为UI提供任何所需图像的图像。然后将其添加到表的委托:

accessoryButtonTappedForRowWithIndexPath: (NSIndexPath *) indexPath{ ... }

然后,您就可以在表数据源上调用方法并启动辅助视图。

答案 1 :(得分:0)

只需使用“tag”。

每个UIView都有一个属性标记(int)。

在cellForRowAtIndexPath中:

//create yourButton and then
yourButton.tag = memberIndex;

当您使用IBAction时,只需获取发件人:

- (IBAction) didSelectButton:(id)sender
{
int memberIndex = ((UIButton *)sender).tag;
//
}

提示:在设置按钮的操作属性时获取发件人请不要忘记“:”

E.G

action = @selector(didSelectButton:);