如何 link 一个 UIPickerView 数组到另一个 class iOS 中的整数 属性

How to link a UIPickerView array to a integer property in another class iOS

我有一个 UIPickerView 秒数组,我想 link 到 NSTimer。

in quiz.h file
@property (strong, nonatomic) IBOutlet UIPickerView *timePicker;

我在 quiz.m 文件中有数组:

- (void)viewDidLoad {
[super viewDidLoad];

self.pickerData = @[@"1 second", @"2 seconds", @"3 seconds", @"4 seconds", @"5 seconds"];

self.timePicker.dataSource = self;
self.timePicker.delegate = self;
}
    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    [self.pickerData objectAtIndex:[self.timePicker selectedRowInComponent:0]];
}

并且我想 link 将这个秒数组 imageview.h 文件

中的 属性
@property (nonatomic, assign) int seconds;

如何在 quiz.m 文件中执行此操作?

我正在尝试:

ImageViewController *ivc = [[ImageViewController alloc] init];
        ivc.seconds = [self.timePicker selectedRowInComponent:0]; // warning displays conversion loses integer precision

我在 ivc.seconds 到 link 中添加什么到选择器数组,并在选择时获取每行中的秒数?

我想 link NSTimer 的秒数。

 [NSTimer scheduledTimerWithTimeInterval:self.seconds target:self selector:@selector(timeout)
                               userInfo:nil repeats:NO];

超时方法弹出到 rootview

make self.pickerData = @[@"1", @"2", @"3", @"4", @"5"]; 并在选择器方法中,

- (NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    int value = [[self.pickerData objectAtIndex:row] intValue];
    NSString *secondString = (value > 1) ? @"seconds" : @"second"
    NSString *title = [NSString stringWithFormat:@"%@ %@", [self.pickerData objectAtIndex:row], secondString];
    return title;
}

以及关于创建

NSInteger row = [self.timePicker selectedRowInComponent:0];
ImageViewController *ivc = [[ImageViewController alloc] init];
ivc.seconds = [[self.pickerData objectAtIndex:row] intValue];

要显示倒数计时器,请先设置计时器

timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(setTimeToLabel) userInfo:nil repeats: YES];

然后在setTimeToLabel方法

-(void) setTimeToLabel 
{
    if (self.seconds != 0) { 
        self.timeLabel.text = [NSString stringWithFormat:@"%d", self.seconds]; 
        self.seconds = self.seconds - 1;
    } else {
        [timer invalidate];
    }
}