我使用Facebook SDK实现登录时面临一个奇怪的问题。
我有2个观点: - 登录视图,带有facebook按钮 - 欢迎视图,访问仅限于已登录用户
登录视图中的我的代码:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
if ( FBSDKAccessToken.currentAccessToken() != nil){
let homePage = self.storyboard?.instantiateViewControllerWithIdentifier("SWRevealViewController") as! SWRevealViewController
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window?.rootViewController = homePage
}
}
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {
if error != nil {
print(error.localizedDescription)
return
}
if let _:FBSDKAccessToken = result.token {
let homePage = self.storyboard?.instantiateViewControllerWithIdentifier("SWRevealViewController") as! SWRevealViewController
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window?.rootViewController = homePage
}
}
在欢迎视图中,我只是在控制台上添加了一条WELCOME消息。
错误如下:当我的用户尚未登录时,我会看到两次WELCOME消息。
这意味着2个线程进入欢迎视图:一个带有登录按钮,另一个带有viewDidload()。
实施登录以避免此问题的最佳方法是什么?
感谢您的反馈。
修改
欢迎查看代码:
override func viewDidLoad() {
super.viewDidLoad()
if (self.revealViewController() != nil) {
self.menuButton.target = self.revealViewController()
self.menuButton.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
print("WELCOME")
}