2012-07-12 52 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]; 
} 

现在它工作正常。

相关问题