2010-12-09 6 views
0
gedrückt wird

Ich habe Benachrichtigung auf Video-Player:Ist es möglich, zu überprüfen, ob getan Taste

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

Und es ist Handler:

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

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

[self dismissModalViewControllerAnimated:YES]; 
} 

Hier in dieser Handler Methode, die ich, wenn das getan überprüfen möge Schaltfläche ist Absender. Weil ich zwei Absender zu dieser Methode habe. Wie überprüfe ich das?

Antwort

3

Per docs: MPMoviePlayerPlaybackDidFinishNotification userinfo Wörterbuch muss NSNumber für MPMoviePlayerPlaybackDidFinishReasonUserInfoKey Schlüssel, der die Grund-Wiedergabe enthalten ist beendet. Seine mögliche Werte:

enum { 
    MPMovieFinishReasonPlaybackEnded, 
    MPMovieFinishReasonPlaybackError, 
    MPMovieFinishReasonUserExited 
}; 
0

Tag mit dem Button hinzufügen und Bedingung entsprechend dem Tag setzen.

oder überprüfen

durch if ([Absender isEqual: btn1]) {

} 
else 
{ 

} 
1

Sie werden zunächst vor dem Aktions-Tag, um Ihre Schaltflächen zuweisen müssen und dann prüfen Sie den Wert des Absenders Etikett.

Fügen Sie einfach diese Zeile Code

- (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. 
} 

Thats it.

Aditya

+0

aber wo ist das 'Absender'? – 1110

+0

Lieber Freund, weisen Sie zuerst den Wert des Tags Ihren Knöpfen im Code oder Ihrer Nib-Datei zu. Ex btnFirst.tag = 1. Sobald Sie dies tun, können Sie auf den Wert des Tags der Absender-Schaltfläche zugreifen. – Aditya

0

Dies ist ein alter Thread, aber ich eher zufällig auf sie, während nach einer Lösung suchen, und die akzeptierte Lösung zeigt nicht den endgültigen Code. Hier ist, was Sie zu tun haben:

- (void) moviePlayBackDidFinish:(NSNotification*)notification 

{
NSLog (@ "moviePlayBackDidFinish");

// Remove observer 

[[NSNotificationCenter defaultCenter] removeObserver: Selbst Name: MPMoviePlayerPlaybackDidFinishNotification Objekt: nil];

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 
*/ 

}

Verwandte Themen