Вызовите метод в классе инициатора из экземпляра класса obj-c - PullRequest
0 голосов
/ 08 мая 2009

У меня есть класс кнопки - при нажатии кнопки вызывается метод playFile класса MyAudio. Итак, мой вопрос, тривиально вызвать метод playFile из класса кнопки, но как я могу вызвать метод displayStopButton из класса инициатора?

кнопка класса

- (void)myButtonClicked: (id)sender
{
    [MyAudio playFile];

}

-(void)enablePlayButton
{
  // test
}

Класс MyAudio

-(BOOL)playFile{

   // Init AVAudioPlayer
}

- (void)audioPlayerDidFinishPlaying: (AVAudioPlayer*)player successfully: (BOOL)flag
{

   // make a call back to calling class????

}

Ответы [ 2 ]

1 голос
/ 13 мая 2009

То, что вы называете своим классом Button, выглядит как класс вашего контроллера. AudioPlayerDidFinishPlaying звучит как метод, который также должен быть реализован в вашем классе контроллера. Таким образом, вы можете установить свой класс контроллера как делегат класса аудиоплеера, а реализация метода audioPlayerDidFinishPlaying может вызвать [self displayStopButton].

0 голосов
/ 10 мая 2009

Вы должны держать указатель на все элементы управления, которые вы хотите включить и отключить в контроллере. Используя эти маркеры, вы можете включать и выключать их, когда получаете уведомления от подсистемы Audio.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...