下面,如何在
togButton
方法中发送两个参数?我试过了,但没成功。
控制目标只接受其操作的一个参数:正在被操纵的控制。没有办法做你想做的事(操作系统不支持它)。
你想在里面放什么?也许您可以使用
tag
属性,或者如果这还不够,则对 UIButton 进行子类化并添加实例变量,然后您可以在 -togButton:
中访问这些实例变量。
这是从 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,你可以做你想做的事了。我希望我有所帮助。
您还可以使用结构将参数包装在一个参数中。
向方法发送两个参数的最佳方法是将它们包装在一个类中。例如,如果两个参数都是字符串,那么您将拥有一个仅由字符串 iVar 组成的类。
点击按钮调用的动作选择器可以有零个、一个或两个参数。第一个是发送者(被点击的按钮),第二个是事件(点击)。 有关控件,请参阅目标操作机制:
- (void)action
- (void)action:(id)sender
- (void)action:(id)sender forEvent:(UIEvent *)event
正如 Thomas Müller 所建议的,将特定于应用程序的数据传递到操作选择器的最佳方法是子类化 UIButton(或者,对于 UITableViewCell 上的按钮,您可以将特定于应用程序的数据添加到 UITableViewCell 子类并访问单元格作为按钮的 superview.superview)。
[Class instancesRespondToSelector: @selector (setTo:over:)]
我记得在一本书上看到过这段 Objective-C 代码。