我正在使用Parse / Swift与自定义Facebook登录按钮。它成功地加载和用户可以登录,但当它成功登录时,只有一个闪光灯的MainViewController显示,然后它返回到登录页。
在Facebook成功登录后,我怎样才能让它要么使用segue,要么转到主视图控制器?Swift 2的正确代码是什么?
下面是我在SignInViewController中为我的Facebook按钮编写的代码:
@IBAction func didTapFacebookConnect(sender: AnyObject) {
let permissions = [ "public_profile", "email", "user_friends" ]
PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions, block: {
(user: PFUser?, error: NSError?) -> Void in
self.dismissViewControllerAnimated(true, completion: nil)
if let user = user {
if user.isNew {
print("User signed up and logged in through Facebook!")
} else {
print("User logged in through Facebook!")
self.dismissViewControllerAnimated(true, completion: nil)
}
} else {
print ("The user cancelled the Facebook; login.")
}
})编辑:
这是我的新代码,但仍然存在相同的问题,新的ViewController会短暂弹出,然后返回到页面中的标志。
这是我收到的错误..。警告:尝试在UITabBarController: 0x7face0d1c310上显示视图不在窗口层次结构中的0x7face0f619f0>!
@IBAction func didTapFacebookConnect(sender: AnyObject) {
let permissions = [ "public_profile", "email", "user_friends" ]
PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions, block: {
(user: PFUser?, error: NSError?) -> Void in
self.performSegueWithIdentifier("fbSignIn", sender: self)
if let user = user {
if user.isNew {
print("User signed up and logged in through Facebook!")
} else {
print("User logged in through Facebook!")
}
} else {
print ("The user cancelled the Facebook; login.")
}发布于 2015-10-14 18:22:40
现在,如果用户成功地登录,您实际上是在两次调用Dis界视图控制器函数。我不确定你的视图控制器的故事板流程,但是这里没有证据表明你有一个分支。
dismissViewController(true,completion:nil)但是,如果您创建了一个从登录控制器到存储板中应用程序主屏幕的segue,在成功注册或登录时,您应该使用适当的标识符调用下面的内容。
performSegueWithIdentifier("SEGUEIDENTIFIER",sender:nil)另外,提示是您应该检查PFUser.currentUser(),以查看是否存在缓存的用户实例,这样您就可以立即切换到主视图控制器,而无需用户每次登录。
https://stackoverflow.com/questions/33132099
复制相似问题