Ich konnte die Delegate-Methoden des Account Kits nicht abrufen. Ich könnte mich irren, aber ich denke, das liegt daran, dass die Delegiertenmethoden nicht korrekt von Objective-C in Swift übersetzt wurden. Hier sind die Codebeispiele:Facebook Account Kit in Swift
import AccountKit
import UIKit
class LoginViewController: UIViewController, AKFViewControllerDelegate {
let accountKit = AKFAccountKit(responseType: .AuthorizationCode)
var pendingLoginViewController: UIViewController?
override func viewDidLoad() {
super.viewDidLoad()
pendingLoginViewController = accountKit.viewControllerForLoginResume()
}
@IBAction func loginWithEmail(sender: AnyObject) {
let viewController = accountKit.viewControllerForEmailLoginWithEmail(nil, state: generateState()) as! AKFViewController
viewController.enableSendToFacebook = true
viewController.delegate = self
presentViewController(viewController as! UIViewController, animated: true, completion: nil)
}
private func generateState() -> String {
let uuid = NSUUID().UUIDString
let indexOfDash = uuid.rangeOfString("-")!.startIndex
return uuid.substringToIndex(indexOfDash)
}
func viewController(viewController: UIViewController!, didCompleteLoginWithAuthorizationCode code: String!, state: String!) {
// This function doesn't get called when user finished their login
}
}
Keine dieser Rückrufe für mich aufgerufen. Können Sie mir Ihren Setup-Code zeigen? – Thi
Ja, sicher. http://collabedit.com/nu33e –
Erhalten Sie den Dialog-Ansicht-Controller präsentiert? Wenn dies der Fall ist, versuchen Sie eine falsche E-Mail-Adresse einzugeben - ich erhalte den Rückruf # 3. Danach kannst du "Abbrechen" versuchen - Callback # 4 wird für mich aufgerufen. BTW Ich benutze Swift 2.2 Compiler (neuste). Sie können auch versuchen, die Implementierung der Delegatmethode mit dem @objc-Schlüsselwort zu markieren. –