如何在 action:@selector 中传递参数?
How do I pass a parameter in a action:@selector?
我正在尝试通过 action:@selector 传递一个 NSString 参数。我试过很多东西,比如
action:@selector(function:example)
action:@selector(function:example)
action:@selector(function) withObject:example
None 这些对我有用,我不知道该怎么做。
这是我正在尝试的方法 select
- (void) function: (NSString *)testString{
//Whatever stuffz
}
这是 select 或
中的完整代码行
[testButton addTarget:self action:@selector(function:) forControlEvents:UIControlEventTouchUpInside];
您可以将值传递给选择器,如下所示
[self performSelector:@selector(function:) withObject:@"myString"];
您不能将字符串传递给按钮操作,iOS 将按钮本身传递给方法。如果你想在方法中使用任何字符串值,那么你需要声明一个变量或方法,它将 return 特定的字符串。
您不能使用 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);
}
希望这对您有所帮助..
我正在尝试通过 action:@selector 传递一个 NSString 参数。我试过很多东西,比如
action:@selector(function:example)
action:@selector(function:example)
action:@selector(function) withObject:example
None 这些对我有用,我不知道该怎么做。
这是我正在尝试的方法 select
- (void) function: (NSString *)testString{
//Whatever stuffz
}
这是 select 或
中的完整代码行[testButton addTarget:self action:@selector(function:) forControlEvents:UIControlEventTouchUpInside];
您可以将值传递给选择器,如下所示
[self performSelector:@selector(function:) withObject:@"myString"];
您不能将字符串传递给按钮操作,iOS 将按钮本身传递给方法。如果你想在方法中使用任何字符串值,那么你需要声明一个变量或方法,它将 return 特定的字符串。
您不能使用 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);
}
希望这对您有所帮助..