NSTimer触发UIProgressView失败

时间:2010-12-14 03:05:44

标签: objective-c cocoa cocoa-touch ios uiprogressview

我在NSObject类(Timer)中使用NSTimer,它触发一个方法,该方法增加一个变量并在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 :(得分:0)

我的猜测,鉴于您的问题和评论,您的“hungerBar”插座未连接到Interface Builder中的进度条。