我试图通过action传递一个NSString参数:@selector。我尝试过很多东西,比如
action:@selector(function:example)
action:@selector(function:example)
action:@selector(function) withObject:example
这些都不适合我,我不知道该怎么做。
以下是我尝试选择的方法
- (void) function: (NSString *)testString{
//Whatever stuffz
}
这是选择器所在的完整代码行
[testButton addTarget:self action:@selector(function:) forControlEvents:UIControlEventTouchUpInside];
答案 0 :(得分:0)
您可以将值传递给选择器,如下所示
[self performSelector:@selector(function:) withObject:@"myString"];
您无法将字符串传递给按钮操作,iOS会将按钮传递给该方法。如果要在方法中使用任何字符串值,则需要声明将返回特定字符串的变量或方法。
答案 1 :(得分:0)
您无法使用addTarget:action:forControlEvents:
直接发送不同参数,只会将self(UIButton *)
发送给@selector
。
意味着你在做什么就像:[self function:< testButton >]
;
你真正想做的是:
[testButton addTarget:self action:@selector(testButtonAction:) forControlEvents:UIControlEventTouchUpInside];
- (void)testButtonAction:(UIButton *)sender
{
[self performSelector:@selector(function:) withObject:@"yourString"];
}
- (void) function:(NSString *)testString
{
NSLog(@"testString :%@", testString);
}
希望这会有所帮助..