我有这些方法可以在ViewController.m
中创建一个简单的倒计时:
- (void)viewDidLoad {
[super viewDidLoad];
secondsLeft = 10;
}
- (void)updateCounter:(NSTimer *)theTimer {
if(secondsLeft > 0 ){
secondsLeft -- ;
seconds = (secondsLeft %3600) % 60;
myCounterLabel.text = [NSString stringWithFormat:@"%02d", seconds];
}
else{
secondsLeft = 10;
}
}
-(void)countdownTimer{
secondsLeft = seconds = 0;
timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(updateCounter:) userInfo:nil repeats:YES];
}
我在那里调用subClass中的方法:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self.vc countdownTimer];
}
所以我有一个内置UIView的ViewController。这个UIView有一个自定义类。我想从这个自定义类调用一个ViewController中的方法。我实现了调用它,但myCounterLabel.text
被记录为(null)
...而我从ViewController本身调用方法,myCounterLabel.text
正确记录左秒。谢谢你的帮助!
答案 0 :(得分:0)
countdownTimer方法在视图controller.m文件中,你通过制作ViewController控制器的对象从其他视图控制器调用它,但你注意到一件事吗?当你调用countdownTimer方法然后每次secondsLeft将为0并且它设置为10所以每当你调用倒数计时器方法时,secondsLeft将被重置。 所以计时器无法启动