2012-07-12 49 views
0

以編程方式連接具有playButton的rewindButton。 rewindButton只是簡單的倒帶和從頭開始播放,playButton從播放切換到暫停。在按下UIButton1時,使用rewindButton方法語句更改UIButton2的UIImage。這工作正常。以編程方式連接兩個UIButtons

播放按鈕被按下並暫停時,PlayButton方法正常工作。即使恢復工作正常。

問題簡報:

當按下rewindButton它會改變爲playButton的UIImage的以PauseImage,使用戶可以暫停。暫停恢復時出現問題。 When pause is resumed it is reloading view controllers.它應該只根據代碼首次加載視圖控制器。

-(void)rewind:(id)sender{ 
audioPlayer.currentTime = 0; 
[timer invalidate]; 
ContainerViewController *viewController = [[[ContainerViewController alloc] init]autorelease]; 
viewController.view.frame = CGRectMake(0, 0, 320, 480); 
[self.view addSubview:viewController.view]; 
[self.view addSubview:toolbar]; 
[audioPlayer play]; 
self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0 
            target:self 
            selector:@selector(displayviewsAction:) 
            userInfo:nil 
            repeats:NO]; 
    [_playButton setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal]; 
} 



-(void)playpauseAction:(id)sender { 

if([audioPlayer isPlaying]) 
{ 
    [sender setImage:[UIImage imageNamed:@"Play Icon.png"] forState:UIControlStateSelected]; 
    [audioPlayer pause]; 
    [self pauseTimer]; 
    [self pauseLayer:self.view.layer]; 

}else{ 
    [sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal]; 
    [audioPlayer play]; 
    [self resumeTimer]; 
    [self resumeLayer:self.view.layer]; 

    if(isFirstTime == YES) 
    { 
     self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0 
              target:self 
              selector:@selector(displayviewsAction:) 
              userInfo:nil 
              repeats:NO]; 
     isFirstTime = NO; 
    } 
    } 
    } 

- (void)displayviewsAction:(id)sender 
{ 

First *first = [[First alloc] init]; 
first.view.frame = CGRectMake(0, 0, 320, 425); 
CATransition *transitionAnimation = [CATransition animation]; 
[transitionAnimation setDuration:1]; 
[transitionAnimation setType:kCATransitionFade];  
[transitionAnimation setTimingFunction:[CAMediaTimingFunction  functionWithName:kCAMediaTimingFunctionEaseIn]];  
[self.view.layer addAnimation:transitionAnimation forKey:kCATransitionFade]; 
    [self.view addSubview:first.view]; 
[first release]; 
self.timer = [NSTimer scheduledTimerWithTimeInterval:23 target:self selector:@selector(Second) userInfo:nil repeats:NO];  
} 

-(void)Second 
{ 
Second *second = [[Second alloc] init]; 
second.view.frame = CGRectMake(0, 0, 320, 425); 
CATransition *transitionAnimation = [CATransition animation]; 
[transitionAnimation setDuration:1]; 
[transitionAnimation setType:kCATransitionReveal]; 
[transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; 
[self.view.layer addAnimation:transitionAnimation forKey:kCATransitionReveal]; 
[self.view addSubview:second.view]; 
[second release]; 
self.timer = [NSTimer scheduledTimerWithTimeInterval:27 target:self selector:@selector(Third) userInfo:nil repeats:NO]; 
} 
+0

爲什麼你重複你的問題 – Bazinga 2012-07-14 14:13:45

回答

0

重新加載視圖控制器後重新加載原因在回滾方法中的原因我忘了添加isFirstTime == YES加載視圖控制器。 Viewcontrollers不需要重新加載。 Viewcontrollers只需要第一次開始從頭開始加載。

因此,現在在回滾方法中設置isFirstTime == YES的值後,它不會從暫停狀態恢復後從頭開始重新加載視圖控制器。

-(void)rewind:(id)sender{ 
audioPlayer.currentTime = 0; 
[timer invalidate]; 
ContainerViewController *viewController = [[[ContainerViewController alloc] init]autorelease]; 
viewController.view.frame = CGRectMake(0, 0, 320, 480); 
[self.view addSubview:viewController.view]; 
[self.view addSubview:toolbar]; 
[audioPlayer play]; 
if(isFirstTime == YES){ 
self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0 
           target:self 
           selector:@selector(displayviewsAction:) 
           userInfo:nil 
           repeats:NO]; 
isFirstTime = NO; 
} 

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

現在它工作正常。

相關問題