如何在选择器方法中发送两个参数?

问题描述 投票:0回答:6

下面,如何在

togButton
方法中发送两个参数?我试过了,但没成功。

iphone objective-c cocoa-touch uikit
6个回答
4
投票

控制目标只接受其操作的一个参数:正在被操纵的控制。没有办法做你想做的事(操作系统不支持它)。


2
投票

你想在里面放什么?也许您可以使用

tag
属性,或者如果这还不够,则对 UIButton 进行子类化并添加实例变量,然后您可以在
-togButton:
中访问这些实例变量。


1
投票

这是从 UI 组件获取数据的解决方法示例

-(void) switchChanged:(id) sender
{
    UISwitch* switchControl = (UISwitch*)sender;
    UITableViewCell *cell = (UITableViewCell*)[sender superview];
    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
    cell.textLabel.text =" change text title";
}

现在你有了cell和indexPath,你可以做你想做的事了。我希望我有所帮助。

您还可以使用结构将参数包装在一个参数中。


0
投票

向方法发送两个参数的最佳方法是将它们包装在一个类中。例如,如果两个参数都是字符串,那么您将拥有一个仅由字符串 iVar 组成的类。


0
投票

点击按钮调用的动作选择器可以有零个、一个或两个参数。第一个是发送者(被点击的按钮),第二个是事件(点击)。 有关控件,请参阅目标操作机制

- (void)action
- (void)action:(id)sender
- (void)action:(id)sender forEvent:(UIEvent *)event

正如 Thomas Müller 所建议的,将特定于应用程序的数据传递到操作选择器的最佳方法是子类化 UIButton(或者,对于 UITableViewCell 上的按钮,您可以将特定于应用程序的数据添加到 UITableViewCell 子类并访问单元格作为按钮的 superview.superview)。


-1
投票
[Class instancesRespondToSelector: @selector (setTo:over:)]

我记得在一本书上看到过这段 Objective-C 代码。

© www.soinside.com 2019 - 2024. All rights reserved.