2010-12-09 4 views
0

У меня есть уведомление о видеоплеера:Можно ли проверить, если сделать нажата кнопка

[[NSNotificationCenter defaultCenter] addObserver:self 
      selector:@selector(moviePlayBackDidFinish:) 
      name:MPMoviePlayerPlaybackDidFinishNotification 
       object:nil]; 

И это обработчик:

- (void) moviePlayBackDidFinish:(NSNotification*)notification 
{  
[[UIApplication sharedApplication] setStatusBarHidden:YES]; 

    // Remove observer 
[[NSNotificationCenter defaultCenter] 
    removeObserver:self 
    name:MPMoviePlayerPlaybackDidFinishNotification 
    object:nil]; 

[self dismissModalViewControllerAnimated:YES]; 
} 

Вот в этом методе обработчика я хочу, чтобы проверить, если сделать Кнопка отправителя. Потому что у меня есть два отправителя этого метода. Как проверить это?

ответ

3

Per документы: MPMoviePlayerPlaybackDidFinishNotification словарь USERINFO должен содержать NSNumber для MPMoviePlayerPlaybackDidFinishReasonUserInfoKey ключа, указывающего воспроизведение причины завершения. Его возможные значения:

enum { 
    MPMovieFinishReasonPlaybackEnded, 
    MPMovieFinishReasonPlaybackError, 
    MPMovieFinishReasonUserExited 
}; 
0

Добавить тег с кнопкой и положить условие в соответствии с тегом.

или проверить

путем, если ([отправителе IsEqual: btn1]) {

} 
else 
{ 

} 
1

Вам сначала нужно назначить тег для кнопок перед действием, а затем проверить значение отправителя тег.

Просто добавьте эти строки кода

- (void) moviePlayBackDidFinish:(NSNotification*)notification { 
     NSInteger anyInteger = [sender tag]; 
     //Now check the value of the anyInteger and write the code accordingly. 
    //switch case or if condition whatever you want. 
} 

это так.

Адитья

+0

но где, что 'отправитель'? – 1110 2010-12-09 13:14:28

0

Это старая нить, но я наткнулся на него, ища решения, и принятое решение не показывает окончательный код. Вот что вы должны сделать:

- (void) moviePlayBackDidFinish:(NSNotification*)notification 

{
NSLog (@ "moviePlayBackDidFinish");

// Remove observer 

[[NSNotificationCenter defaultCenter] removeObserver: само Имя: MPMoviePlayerPlaybackDidFinishNotification объекта: ноль];

NSInteger movieFinishReason= [[[notification userInfo]objectForKey: 
           MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] intValue]; 


if(movieFinishReason == 2 || movieFinishReason == 1 || movieFinishReason == 0){ 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 
/* 
MPMovieFinishReasonPlaybackEnded = 0,//played movie sucessfuly. 
MPMovieFinishReasonPlaybackError = 1, //error in playing movie 
MPMovieFinishReasonUserExited = 2; //user quitting the application/user pressed done button 
*/ 

}

Смежные вопросы