Приветствую меня, я новичок в разработке iOS. У меня есть одна проблема, связанная с NSTimer. Я использую NSTimer в своем контроллере.
Таймер начинает уменьшаться при событии UIButton. После вызова таймера, когда я перехожу к другому контроллеру представления. Затем таймер уменьшает значение, что он работает нормально. Но когда я вернусь к просмотру таймера, таймер перестанет обновлять значение, поэтому таймер не вызывает его @selector(). Как я могу вызвать метод обновления значения, когда вернусь к просмотру таймера?Метод NSTimer, не вызывающий значение значения
Мой код выглядит следующим образом:
-(IBAction)btnStrDecPressed:(id)sender
{
countDownlabel.text = [NSString stringWithFormat:@"%@:%@:%@", pickhour, pickmins, picksecs];
secondsLeft=[pickhour intValue] * 3600;
secondsLeft=secondsLeft + [pickmins intValue] * 60;
secondsLeft=secondsLeft + [picksecs intValue];
appdel.LeftSeconds=secondsLeft;
NSLog(@"%d",appdel.LeftSeconds);
if(timer==nil)
{
timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];
}
}
-(void)updateCountdown
{
int hours, minutes, seconds;
hours = appdel.LeftSeconds/3600;
minutes = (appdel.LeftSeconds % 3600)/60;
seconds = (appdel.LeftSeconds %3600) % 60;
appdel.LeftSeconds--;
countDownlabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hours, minutes, seconds];
if (appdel.LeftSeconds==0)
{
[[[UIAlertView alloc] initWithTitle:@"Restaurant" message:@"Timer Completed" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
[timer invalidate];
}
}
Где pickhour, pickmins, picksecs ценности, получая от UIPickerView.
Покажите нам свой код в viewWillAppear viewWillDisapear методы, также покажите нам, как вы переходите к другому viewController – Ecarrion
Я не добавляю метод viewWillAppear и viewDidAppear, у меня есть viewDidLoad. И у меня есть слайдер, как вид мастера-детали. Как и при щелчке мастера viewSelectRow, мы меняем информацию о подробном представлении. Здесь я нажимаю другой вид на щелчок мастер-представления didSelectRow. Я использую для этого образец кода. –
Привет, ты уверен? вы btnStrDecPressed функция, вызывающая после нажатия кнопки ... если да, тогда проверьте управление enter, если (timer == nil) условие. потому что я думаю, ваш таймер не инициализируется. – Hindu