我在表格视图中添加了UIButton
。现在,当我单击某个特定按钮时,我需要获取与该行对应的对象的详细信息。
[button addTarget:self
action:@selector(invite:contactmail:)
forControlEvents:UIControlEventTouchUpInside];
我已将此方法用于按钮;如何将参数传递给此选择器方法?或者,当单击此按钮时,是否还有其他方法可以将参数传递给此方法?
答案 0 :(得分:3)
作为操作添加到UIControl的方法可以有3个不同的签名
- (void)action
- (void)action:(id)sender
- (void)action:(id)sender event:(UIEvent *)event
你无法传递自己的对象。通常可以在发送者(您的按钮)对象的帮助下获得您尝试传递的任何对象。
如果tableviewcell中有一个按钮,你可以使用类似的东西来获取单元格的索引路径。
- (IBAction)buttonAction:(id)sender {
UIButton *button = (UIButton *)sender;
CGPoint buttonOriginInTableView = [button convertPoint:CGPointZero toView:tableView];
NSIndexPath *indexPath = [tableView indexPathForRowAtPoint:buttonOriginInTableView];
// do something
}
使用indexPath,您可以获得所需的对象。
答案 1 :(得分:0)
不,不是真的。点击事件是
-(IBAction) fnc:(id)sender;
如果你想调用另一种方法,你需要在该形式的函数中这样做。
-(IBAction) fnc:(id) sender
{
UIButton *b = (UIButton*) sender;
[self otherFnc:b arg:arg1 arg2:arg2];
}