2

如何使用 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:

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

4

1 回答 1

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);
}
于 2013-09-09T21:28:51.110 回答