我有两个视图控制器,都通过Segue连接并使用Storyboard。
在视图控制器1中,我有一个NSTimer计数并更新UILabel。
当我切换到视图控制器2并返回1时,uilabel不再更新。
以下是一些代码:
headerfile
NSString *timerTicksForCounter;
- (void)viewDidLoad
{
[super viewDidLoad];
[self updateTimerLabel];
}
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self updateTimerLabel];
}
- (void) startLastConUpdater
{
lastCTimer = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(updateTimer)
userInfo:nil
repeats:YES];
}
-(void) updateTimerLabel
{
NSLog(@"timer: %@", timerTicksForCounter);
if (timerTicksForCounter) {
NSLog(@"timer not null");
mainTimerLabel.text = timerTicksForCounter;
}
}
- (void)updateTimer
{
NSDate *currentDate = [NSDate date];
NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:stopDate];
NSDate *timerDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"mm:ss"];
timerTicksForCounter = [dateFormatter stringFromDate:timerDate];
[self updateTimerLabel];
}
答案 0 :(得分:2)
你的意思是什么不再更新?这是否意味着您在切换之前丢失了显示的内容,或者它不再更新。如果它不再更新,那是因为你没有用适当的方法启动计时器。你可以这样做:
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self startLastConUpdater];
}
这应解决我上面提到的两个问题。