2015-05-22 10 views
5

An- und Abmeldung funktioniert ordnungsgemäß. Nach FacebookFBSDKLoginButtonDelegate löst keine Delegate-Methoden aus

„Ihre App können Benachrichtigungen von Login-Ergebnisse oder Logout-Events. Um tun dies einen Delegaten FBSDKLoginButton zuweisen, die zu FBSDKLoginButtonDelegate Protokoll bestätigt.“

Ich habe die FBSDKLoginButtonDelegate meiner Ansicht-Controller hinzugefügt, die die folgende Eigenschaft hat:

@property (weak, nonatomic) IBOutlet FBSDKLoginButton *FacebookButton; 

und die .m (Implementierung) Datei hat:

@interface firstVC() 
<FBSDKLoginButtonDelegate> 

@end 

aber das Problem ist, dass das FBSDKLoginButtonDelegate nicht aufruft:

- (void) loginButton: (FBSDKLoginButton *)loginButton 
didCompleteWithResult: (FBSDKLoginManagerLoginResult *)result 
       error: (NSError *)error{ 

    NSLog(@"facebook login button test"); 


} 

und beim Abmelden Aufruf nicht:

- (void) loginButtonDidLogOut:(FBSDKLoginButton *)loginButton{ 
    NSLog(@"facebook logout button test"); 
} 

Zusätzlich habe ich die oben genannten Methoden in der Kopfzeile zwischen @interface und @end

um sicherzustellen, dass die Klasse der Schaltfläche FBSDKLoginButton
+1

In appdelegate ..had Sie deklarieren alles in openurl-Methode? –

Antwort

7

ich hatte, war statt UIButton erklärt haben, die hatte ich schon getan:

@property (weak, nonatomic) IBOutlet FBSDKLoginButton *FacebookButton; 

Sobald ich die beiden genannten Klassen in der Frage, dass und umgesetzt haben, dann war das Update auf die Schaltfläche Delegaten selbst auf viewDidLoad in der Implementierungsdatei zu setzen:

[FacebookButton setDelegate:self]; 
+0

Befolgen Sie die Namenskonvention obj-C, die korrekte Benennung lautet "facebookButton" – BootMaker

-1

diese Zeilen zu Ihrem viewDidLoad hinzufügen

[_loginFaceBook setReadPermissions: @[@"public_profile",@"email"]]; 
[_loginFaceBook setDelegate:self]; 
[FBSDKProfile enableUpdatesOnAccessTokenChange:YES]; 
0

Ich denke ConfusedDeer Antwort mit aktuellen Versionen nicht gültig ist. Denn auch Dokumentationen scheinen überholt zu sein.

Die Arbeit, die ich fand, wurde verwendet;

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLogIn) name: FBSDKAccessTokenDidChangeNotification object:nil]; 

Schnipsel oben, in der Anwendung: openURL von Facebook App aufgerufen. Innerhalb des Selektors habe ich nach dem Login die notwendige Arbeit geleistet.

Hinweis: Die gleiche Funktion wird bei jedem Zugriffstoken-Statuswechsel aufgerufen, daher sollten Sie diesen Code mit Ihrer eigenen Logik sichern. Zumindest bis Facebook das Dokument oder den Code repariert.

Verwandte Themen