ViewController.h
@interface ViewController : UIViewController { NSTimer *aTimer; }
ViewController.m
// 画面生成時 - (void)viewDidLoad { // タイマーを生成しスタート aTimer = [NSTimer scheduledTimerWithTimeInterval:5.f target:self selector:(tick:) userInfo:nil repeat:YES]; } // 画面破棄時 - (void)viewDidLoad { // タイマーを破棄 [aTimer release]; aTimer = nil; } // タイマーが動作した時の処理 - (void)tick:(NSTimer *)timer { ... } // 基本的な使い方は上の通り // 下はこんな使い方もってかんじ // 画面表示時 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; // タイマーが動いているか判定し、停止している場合は再開する if (![aTimer isValid]) [aTimer fire]; } // 画面終了時 - (void)viewDidDisappear:(BOOL)animated { [super viewDisappear:animated]; [aTimer invalidate]; }
こんなかんじですかね。
viewDidDisapper とかでタイマーとめておかないと次のビューに遷移したあともタイマーが動き続ける可能性があります。
また画面に戻ってきたときは今度は viewWillAppear が反応するんでそこでタイマーを再開するというかんじです。
(viewの各メソッドは、ViewController作成時に最初からある各メソッド で簡単に載せてます)
0 件のコメント:
コメントを投稿