Facebook Login-Taste für Swift

8

Wenn ich in Xcode ein UIView erzeuge und dann die benutzerdefinierte Klasse als FBSDKLoginButton hinzufüge, wenn ich darauf klicke, führt es mich durch den Facebook-Login und bringt mich dann zur selben Seite wie FBSDKLoginButton , aber anstatt zu sagen Login-Taste heißt es jetzt abmelden. Wie würde ich dazu kommen, dass beim Klicken auf die Login-Schaltfläche eine neue Ansicht entsteht?

Ich habe das Facebook SDK über cocoapods heruntergeladen und es ist das erste Mal, dass ich damit arbeite, also bin ich verwirrt darüber. Danke für die Hilfe!

    
Soporificdreamer 20.04.2015, 14:00
quelle

4 Antworten

21

Eine Option wäre, Ihren View-Controller als Delegierten von FBSDKLoginButton festzulegen und das loginButton:didCompleteWithResult:error: Methode, die aufgerufen wird, wenn die Schaltfläche zum Anmelden verwendet wird.

Schnell

%Vor%

Obj-C

%Vor%

Dann können Sie in der Methode loginButton:didCompleteWithResult:error: die result und error überprüfen, und wenn alles in Ordnung ist, navigieren Sie zu einer anderen Ansicht.

Schnell

%Vor%

Obj-C

%Vor%

In Dokumenten finden Sie weitere Informationen zur Anmeldung bei der FB.

    
veducm 20.04.2015, 14:18
quelle
3

In Swift wäre das etwa so:

%Vor%

Fügen Sie dann in Ihrem TargetViewController eine Abwicklungsfunktion hinzu:

%Vor%     
Ruud Kalis 20.04.2015 14:56
quelle
2

In der aktuellen FacebookLogin-Version (0.2.0) für Swift ist die LoginButton-Delegate-Eigenschaft als starke Eigenschaft definiert:

%Vor%

Wenn Sie die Anmelde-Schaltfläche nach den Facebook-Anweisungen hinzufügen und die Unterklasse UIViewController als Schaltflächen-Delegate festlegen ...

%Vor%

... ein Referenzzyklus wird erstellt. Die Ansicht enthält einen starken Verweis auf die Schaltfläche, die Schaltfläche enthält einen starken Verweis auf den Controller, und der Controller weist einen starken Verweis auf seine Ansicht auf, siehe Beitrag .

Meine Lösung bestand darin, eine schwache Membervariable zu verwenden, um einen Verweis auf die Anmeldeschaltfläche zu erhalten, und wenn die Ansicht verschwindet, wird die Schaltfläche delegate wie folgt auf null gesetzt:

%Vor%

Verwenden Sie nicht die Funktion viewWillDissapear() für die Einstellung auf nil den Delegierten, da die Facebook-Anmeldeseite über Ihrer App angezeigt wird und diese Funktion auslöst, und Sie werden das Login-Ergebnis nicht erhalten, da Sie nicht der sein werden Delegieren Sie mehr. Beachten Sie, dass diese Lösung für Ansichten in einem Navigationscontroller einwandfrei funktioniert. Eine andere Lösung sollte für modale Fenster gefunden werden.

Ich hoffe, es hilft, Xavi

    
XME 26.09.2017 10:28
quelle
0

Sie können dies wie dieses Tutorial von appcoda tun (siehe Code unten)

%Vor%

Hier ist eine Demo-App .

    
bLacK hoLE 20.04.2015 14:23
quelle

Tags und Links