アカウントキットの代理人メソッドを取得できませんでした。私は間違っているかもしれませんが、これはデリゲートメソッドがObjective-CからSwiftに正しく変換されなかったためだと思います。コードサンプルは次のとおりです。SwiftのFacebookアカウントキット
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
}
}
をmenthodことを得ることができます。セットアップコードを表示できますか? – Thi
さて、確かに。 http://collabedit.com/nu33e –
ダイアログビューコントローラーが表示されますか?もしそうなら、間違ったメールアドレスを入力しようとする - 私は#3コールバックを取得しています。その後、 "キャンセル"を試すことができます - コールバック#4が私のために呼び出されます。私はSwift 2.2コンパイラ(最新のもの)を使用します。 @objcキーワードを使用してデリゲートメソッド実装をマークすることもできます。 –