如果单击倒带按钮,此UIButton倒带如何向UIButton播放发送通知以执行playpauseaction方法。
-(void)rewind:(id)sender{
[timer invalidate];
audioPlayer.currentTime = 0;
MainViewController *viewController = [[MainViewController alloc] init];
viewController.view.frame = CGRectMake(0, 0, 320, 480);
[self.view addSubview:viewController.view];
[self.view addSubview:toolbar];
[viewController release];
}
-(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;
}
}
}
当点击执行倒带方法时,倒带按钮,并发送播放按钮的通知以执行playpauseAction方法。
感谢您的帮助。
修改 宣布了
@property (nonatomic, retain) UIButton *playButton;
@synthesize playButton = _playButton;
[self playpauseAction:_playButton];
当点击倒带按钮时它发生了什么,它执行播放暂停动作方法,但没有根据playpauseaction方法切换播放按钮暂停。为什么呢?
答案 0 :(得分:2)
在你的视图中,加载写下这个;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playpauseAction) name:@"ButtonPressed" object:nil];
按下按钮时,添加此代码;
[[NSNotificationCenter defaultCenter] postNotificationName:@"ButtonPressed" object:nil];
它应该调用你的playpauseAction。
不要忘记你的dealloc写;
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"ButtonPressed" object:nil];
否则您的代码将崩溃,因为即使您的类的实例不再存在,该方法仍将尝试调用。
希望这有帮助,
乔纳森
答案 1 :(得分:1)
如果你有一个游戏暂停按钮的引用(你想让这种事情变得更容易),你可以在rewind
方法中写下这一行
[self playpauseAction:playpauseButton];
您无需使用通知中心