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 件のコメント:
コメントを投稿