Я становлюсь отчаянным.У меня есть NSTimer во втором ViewController.
-(IBAction)start {
myticker = [NSTimer scheduledTimerWithTimeInterval:0.01
target:self
selector:@selector(showActivity)
userInfo:nil
repeats:YES];
}
-(IBAction)stop {
[myticker invalidate];
}
-(void)showActivity {
float currentTime = [time.text floatValue];
newTime = currentTime + 0.01;
time.text = [NSString stringWithFormat:@"%.2f", newTime];
}
newTime
это переменная экземпляра (float), а time
- метка, где отображается время.
Перед вызовом третьего ViewController я сохранил время так:
-(IBAction)right {
[self stop];
ThirdViewController *screen = [[ThirdViewController alloc] initWithNibName:nil bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
screen.timelabel.text = [NSString stringWithFormat: @"%.2f", newTime];
[self presentModalViewController:screen animated:YES];
[screen release];
}
Я остановил таймер и передал время переменной экземпляра timelabel
(UILabel).В третьем ViewController я создал тот же NSTimer с теми же методами.Но когда я открываю третий View Controller, таймер снова запускается с 0.
Что не так с моим кодом?
Мой третий ViewController:
-(IBAction)start {
myticker = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(showActivity) userInfo:nil repeats:YES];
}
-(IBAction)stop {
[myticker invalidate];
}
-(void)showActivity {
float currentTime = [timelabel.text floatValue];
float newTime = currentTime + 0.01;
timelabel.text = [NSString stringWithFormat:@"%.2f", newTime];
}