Я использую NSTimer в классе NSObject (Timer), который запускает метод, увеличивает значение переменной и запускает метод в View Controller (InfoViewController). (В замешательстве ;-D)
Все отображается на экране, и таймер запускается правильно. Переменная f.hunger обновляется и показывает правильное значение (при использовании printf ("% f", f.hunger)), но панель UIProgress не обновляется сама. Начальное значение f.hunger: 1.
Если кто-то может мне помочь, укажите, где я допустил очевидную ошибку или получил предложение, это будет очень ценно, поскольку он уже несколько часов занимается моей головой. Я добавил пример кода ниже, чтобы показать, что я делаю, немного яснее.
Приветствует всех. : -D
Класс таймеров
- (void)startHungerTimer
{
if(hungerTimer.isValid == NO)
{
infoVC = [[InfoViewController alloc] init];
self.hungerTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(incrementHungerTimer:) userInfo:nil repeats:YES];
}
}
- (void)incrementHungerTimer:(NSTimer *)aTimer
{
f.hunger -= 0.01;
[infoVC updateHungerProgress];
}
Контроллер представления информации
- (void)updateHungerProgress
{
Functions *f = [Functions sharedFunctions];
hungerBar.progress = f.hunger;
}
- (void)loadView
{
hungerBar = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
[hungerBar setFrame:CGRectMake(17.0, 30.0, 160.0, 10.0)];
hungerBar.progress = f.hunger;
[bView addSubview:hungerBar];
[hungerBar release];
}