如何 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];
}
}
我有一个 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];
}
}