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!
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.
In Swift wäre das etwa so:
%Vor%Fügen Sie dann in Ihrem TargetViewController eine Abwicklungsfunktion hinzu:
%Vor%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 ...
... 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
Tags und Links ios facebook swift facebook-login