1

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];
}
4

1 に答える 1

0

私の推測では、あなたの質問とコメントから、「hungerBar」アウトレットが Interface Builder のプログレス バーに接続されていないということです。

于 2010-12-14T15:20:00.077 に答える