从子类开始倒计时

时间:2015-04-10 14:45:27

标签: ios objective-c timer

我有这些方法可以在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正确记录左秒。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

countdownTimer方法在视图controller.m文件中,你通过制作ViewController控制器的对象从其他视图控制器调用它,但你注意到一件事吗?当你调用countdownTimer方法然后每次secondsLeft将为0并且它设置为10所以每当你调用倒数计时器方法时,secondsLeft将被重置。 所以计时器无法启动