2013-11-14 4 views
-3

Как разрешить UIViewController обновлять себя на лету, если мне нужно отображать данные в реальном времени? Например, я хочу отображать часы времени на представлении. Вторая часть увеличивается на 1 каждую секунду. Какой метод я должен вызвать, чтобы позволить UIViewController иметь фоновый процесс, который автоматически изменяет содержимое без явного обновления?UIViewController обновляет себя на лету?

ответ

0

Вам не нужно обновлять весь UIViewController, если вы хотите только обновить объект часов.

Один из способов обновления часов раз в секунду - использовать NSTimer. Документация here.

[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(updateClock:) userInfo:nil repeats:YES]; 
0

Вам не нужно обновлять все, вам нужно только обновить часы. Так, например, если вы используете цифровые часы, вы могли бы сделать:

- (void)clockTimerStart{ 
    //call this in your viewDidLoad method 

    //start the clock 
    NSTimer *clockTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateClock) userInfo:nil repeats:YES]; 
} 

Тогда для метода updateClock

- (void)updateClock{ 
    //this will be called every second while the clockTimer method is running 
    //you could increment the time here. For example, if your incrementing 
    //variable was named "increment" 

    increment++; 
} 

Затем, когда вы хотите, чтобы остановить Yoru часы, вы можете использовать clockTimer = nil

Смежные вопросы