Я пытаюсь сделать свой собственный таймер обучения таймера. Теперь у меня проблема с чтением значения элемента управления UIStepper.не может прочитать значение UIStepper
Я установил int над контроллером UIStepper, который работает до сих пор.
- (IBAction)stepperChange:(id)sender {
// converting double to int
int temp = [[NSNumber numberWithDouble:[(UIStepper *)sender value]] intValue];
NSLog(@"stepper was pressed. Current values is %d", [[NSNumber numberWithDouble:[(UIStepper *)sender value]] intValue]);
self.intervalSeconds.text = [NSString stringWithFormat:@"%i", [[NSNumber numberWithDouble:[(UIStepper *)sender value]] intValue]];
mainInt = [[NSNumber numberWithDouble:[(UIStepper *)sender value]] intValue];
}
пока все хорошо. проблема в том, что я хочу сбросить таймер на значение UISteppers, как только оно достигнет 0. Но когда я пытаюсь прочитать степперы Value непосредственно без отправителя (id), я всегда получаю значение 0.
например
-(void)readStepperValue {
NSLog(@"Read UIStepper control value: %f", [intervalStepper value]);
}
Я думаю, это просто глупая ошибка начинающих ...
Хорошо, я только что сделал супер простой тест приложение, код выглядит следующим образом:
vierContro ller.h:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
IBOutlet UIStepper *stepper;
IBOutlet UILabel *stepperValue;
}
@property (nonatomic, strong) UIStepper *stepper;
@property (nonatomic, strong) UILabel *stepperValue;
- (IBAction)showStepperValue;
@end
viewController.m:
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
@synthesize stepper, stepperValue;
- (IBAction)showStepperValue {
int temp = stepper.value;
stepperValue.text = [NSString stringWithFormat:@"%i", temp];
[self showValue];
}
- (void)showValue {
int temp = stepper.value;
NSLog(@"stepper.value: %i", temp);
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Метка получает корректно обновляется внутри метода IBAction. Но когда я называю отдельный метод (showValue), который не входит в IBAction, он не может прочитать значение контроллера ....
Вы подключили переменную экземпляра 'intervalStepper' в IB, а также действие? –
Я подключил шаговый контроллер к IBAction. но считывание значения контроллера не имеет ничего общего с IB, верно? –
Предполагая, что я правильно понимаю код, в '-readStepperValue' похоже, что вы пытаетесь прочитать из переменной экземпляра UIStepper, называемой' intervalStepper'. Если это означает указать UIStepper, который вы создали в IB (а не программно), его также нужно подключить к IB - объявить переменную экземпляра как «IBOutlet» и подключить ее. –