Swiftコントローラの名前を変更する方法についてはthis tutorialに従っています。私のコントローラは以前はFirestViewControllerという名前でした。今はLoginViewControllerという名前になりました。VIEWコントローラの名前を変更した後にFacebookのログインが機能しない
プロジェクトが仮想環境で正しく構築されて実行されるため、名前が変更されていることがわかりました。しかし、私のFacebookログインコードを保持する関数ViewDidLoad
は機能しません。私はSwift Cocoapods SDKを使用しています。
なぜアプリケーションが実行されているのか、Facebookのログインボタンが表示されていないことについてのアイデアは非常に高く評価されます。
EDIT:
import UIKit
import FacebookCore
import FBSDKCoreKit
import FBSDKLoginKit
import FacebookLogin
class LoginViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//let loginButton = FBSDKLoginButton
let loginButton = FBSDKLoginButton()
loginButton.center = view.center
view.addSubview(loginButton)
}
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {
/*
Check for successful login and act accordingly.
Perform your segue to another UIViewController here.
*/
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewController(withIdentifier: "nextView") as! SecondViewController
self.present(nextViewController, animated:true, completion:nil)
}
func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) {
// Actions for when the user logged out goes here
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
はEDIT 2:提案された変更後の新しいコード:ここでは私の新しいLoginViewControllerコードファイルである
import UIKit
import FacebookCore
import FBSDKCoreKit
import FBSDKLoginKit
import FacebookLogin
class LoginViewController: UIViewController, FBSDKLoginButtonDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let loginButton = FBSDKLoginButton()
loginButton.delegate = self
loginButton.center = view.center
view.addSubview(loginButton)
}
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
/*
Check for successful login and act accordingly.
Perform your segue to another UIViewController here.
*/
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewController(withIdentifier: "nextView") as! SecondViewController
self.present(nextViewController, animated:true, completion:nil)
}
func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
// Actions for when the user logged out goes here
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
私のFacebookログインコードを保持しているViewDidLoad関数からいくつかのコードを表示して問題の原因を特定することはできません。 –
@QuocLe上記の要求されたコードを追加しました。 –
"class LoginViewController:UIViewController、FBSDKLoginButtonDelegate"に変更してください。そしてviewDidLoadに次のコードを追加してください:loginButton.delegate = self –