0

最初のView ControllerのNSDateは、別のView Controllerに移動してから戻るまで更新されません。それはなぜでしょうか?

viewDidLoad:

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(fadein) userInfo:nil repeats:NO];
    [timer fire];

ビューが表示されます:

// Date
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateStyle:NSDateFormatterFullStyle];
    NSString *dateToday = [formatter stringFromDate:[NSDate date]];
    [dateLabel setText:dateToday];
    dateLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:12];

方法:

-(void) fadein
{
    dateLabel.alpha = 0;
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDelay:1.0];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];

    [UIView setAnimationDelegate:self];

    [UIView setAnimationDuration:1.0];
    dateLabel.alpha = 1;

    [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
    [UIView commitAnimations];
}

ありがとう!

編集:問題は解決しました。以下の人々に役立つ回答のおかげです。回答しなかった他の人が質問を閉じたように見えますが、以下の回答をした人は両方ともうまくいきました!

4

2 に答える 2

1

別の日である場合、アプリを開くと dateLabel テキストが変更されます。私の言っていることが分かるよね?そのため、日曜日にアプリを開きましたが、月曜日にアプリを開いたとき、まだ日曜の日付が dateLabel として表示されていました

あなたのコメントから、アプリを再度開いたときに日付を更新していないようです。viewWillAppearホームボタンを押してアプリを再度開いても呼び出されません(これでアプリが閉じたり強制終了されたりしないことをご承知おきください)。AppDelegateのメソッドから refreshDate への呼び出しを追加する必要がありますapplicationWillEnterForeground:

于 2013-05-21T07:34:18.607 に答える