Ну, это не выполнение
(void)pageViewControllerAction:(id)sender
потому что у вас есть исключение в предыдущем методе? Где этот audioPlayer определен и инициализирован? Это может быть проблемой здесь.
Во-вторых, зачем вам два действия. Просто имейте одну и вызывайте другую функцию изнутри.
пример:
UIButton *playpauseButton = [UIButton buttonWithType:UIButtonTypeCustom];
[playpauseButton addTarget:self action:@selector(playpauseAction:) forControlEvents:UIControlEventTouchUpInside];
// [playpauseButton addTarget:self action:@selector(pageViewControllerAction:) forControlEvents:UIControlEventTouchUpInside];
playpauseButton.frame = CGRectMake(0, 0, 50, 50);
-(void)playpauseAction:(id)sender
{
if ([audioPlayer isPlaying]){
[sender setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
[audioPlayer pause];
} else {
[sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
[audioPlayer play];
}
[self pageViewControllerAction]; // Here is the call to the other function
}
Изменить:
Наконец, убедитесь, что у вас есть функция, определенная в вашем .h файле следующим образом:
- (void) pageViewControllerAction;
Кроме:
Я не понял вашу логику настройки изображения. Похоже, ошибка в этой логике. Вам также необходимо указать UIControlStateSelected после нажатия кнопки. Вы только устанавливаете UIControlStateNormal