如何将NSString Value从一个方法传递到按钮addTarget方法的另一个方法?

时间:2013-09-09 21:03:33

标签: iphone ios objective-c

如何使用UIButton addTarget将NSString对象作为参数传递给另一个方法:

这是我的代码:

 - (void)vision:(PBJVision *)vision capturedVideo:(NSDictionary *)videoDict error:(NSError *)error
{

    _recording = NO;

    if (error) {
        NSLog(@"encounted an error in video capture (%@)", error);
        return;
    }


    _currentVideo = videoDict;

    NSString *videoPath = [_currentVideo  objectForKey:PBJVisionVideoPathKey];
    NSLog(@"string = %@",videoPath);



UIButton *ok = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    ok.frame = CGRectMake(95, 3, 50, 30);
    [ok setTitle:@"OK" forState:UIControlStateNormal];
    [ok addTarget:self action:@selector(okwindow:) forControlEvents:UIControlEventTouchUpInside];
    [customview addSubview:ok];

}

如何将字符串值作为addTarget的参数传递:

请提供任何建议和解决方案......

1 个答案:

答案 0 :(得分:1)

大概你想在okwindow:方法中访问videoPath字符串?这不是通过按钮传递状态来完成的。按钮用于收集触摸事件。

而是通过添加属性来更改视图控制器的状态...

@property (nonatomic, strong) NSString *videoPath;

当你收到字符串时设置它......

NSString *videoPath = [_currentVideo  objectForKey:PBJVisionVideoPathKey];
NSLog(@"string = %@",videoPath);
self.videoPath = videoPath;

并在用户按下按钮时访问它......

- (void)okwindow:(id)sender {

    NSLog(@"I still have the string = %@",self.videoPath);
}