2012-02-25 20 views
0

オーディオファイルを一時停止するために一時停止ボタンが押されたため、ビューの更新が一時停止されるまで時間が無効になりました。再起動タイマー

-(void)playpauseAction:(id)sender 
{ 

if 

    ([audioPlayer isPlaying]){ 

[sender setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateSelected]; 

    [audioPlayer pause]; 

[timer invalidate]; 

    } else { 

[sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal]; 

    [audioPlayer play]; 

    self.timer = [NSTimer scheduledTimerWithTimeInterval:11 target:self selector:@selector(displayviewsAction:) userInfo:nil repeats:NO]; 

    } 

} 

- (void)displayviewsAction:(id)sender 
{ 
FirstViewController *viewController = [[FirstViewController alloc] init]; 

viewController.view.frame = CGRectMake(0, 0, 320, 480); 

[self.view addSubview:viewController.view]; 

[self.view addSubview:toolbar]; 

self.timer = [NSTimer scheduledTimerWithTimeInterval:23 target:self selector:@selector(secondViewController) userInfo:nil repeats:NO]; 

[viewController release]; 

} 

-(void)secondViewController { 
SecondViewController *secondController = [[SecondViewController alloc] init]; 

secondController.view.frame = CGRectMake(0, 0, 320, 480); 

[self.view addSubview:secondController.view]; 

[self.view addSubview:toolbar]; 

self.timer = [NSTimer scheduledTimerWithTimeInterval:27 target:self selector:@selector(ThirdviewController) userInfo:nil repeats:NO]; 

[secondController release]; 
} 

これは複数のビューではこのようになります。アプリケーションロジックごとに、ユーザーは任意のビューで一時停止してオーディオファイルを一時停止し、タイマ無効化ステートメントはビューの更新を一時停止することができます。ユーザーが一時停止してオーディオファイルを再開すると、その時点以降のビューの更新が開始されます。ですから、私は、ビューのユーザーが一時停止してもビューを更新し続けるように、タイマーを再起動する方法を教えています。

どのように私はそれを行うことができます。

答えて

1

タイマーは再利用する予定ではなく、別のタイマーを作成するだけです。

self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(countDown) userInfo:nil repeats:YES]; 

をそして、あなたのタイマーを再起動:

1
-(void)countDown{ 
    counter--; 
    if (counter == 0){ 
     [self.timer invalidate]; 
     [self secondViewController]; 
    } 
} 
はあなたのタイマーを起動

counter = 23; 
[self.timer fire]; 

あなたが見ることができるように、タイマーが唯一予定されているので、あなたが、あなたの目的のために、この答えを調整してください-(void)secondViewControllerメソッドを起動するために

+0

各ビューのタイマーは一定ではありませんそれは – user1120133

+0

@ user1120133上記の方法を各ビューに追加して、問題は解決されます。 – 0xDE4E15B

関連する問題