NSTimer, вызывающий сбой UIProgressView - PullRequest
1 голос
/ 14 декабря 2010

Я использую 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];
}

1 Ответ

0 голосов
/ 14 декабря 2010

Я думаю, учитывая ваш вопрос и комментарии, что ваш выход "hungerBar" не подключен к индикатору выполнения в Интерфейсном Разработчике.

...