我创建了一个包含3个文本字段(用户名,电子邮件,密码)的登录屏幕。有3个动作按钮(注册,登录,Facebook登录)。
我能够使用Facebook帐户登录,但我似乎无法呈现用户的详细信息,此类名称和个人资料图片..我试图在currentviewcontroller或destinationVC上显示它但我想我我对segue和Facebook做错了什么
import UIKit
import Parse
import FBSDKCoreKit
import ParseFacebookUtilsV4
var myAlert = ""
var user = PFObject(className:"User")
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var userName: UITextField!
@IBOutlet var email: UITextField!
@IBOutlet var passWord: UITextField!
@IBOutlet weak var userlab: UILabel!
let permissions = ["public_profile", "user_friends", "email"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.userName.delegate = self
self.email.delegate = self
self.passWord.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func LogInToFacebook(sender: AnyObject) {
PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions) {
(user: PFUser?, error: NSError?) -> Void in
if let user = user {
if user.isNew {
print("User signed up and logged in through Facebook!")
self.userlab.text = PFUser.currentUser()?.username
self.performSegueWithIdentifier("CSegue", sender: self)
} else {
print("User logged in through Facebook!")
//self.image = UIImage(named: "logout_FB.png")!
self.userlab.text = PFUser.currentUser()?.username
//self.fbOutlet.setImage(self.image, forState: UIControlState.Normal)
self.performSegueWithIdentifier("CSegue", sender: self)
}
} else {
print("Uh oh. The user cancelled the Facebook login.")
}
}
}
在destinationVC(HomeVC)我刚创建了3个标签
import UIKit
import Parse
import FBSDKCoreKit
import ParseFacebookUtilsV4
class HomeVC: UIViewController {
@IBOutlet weak var userNamelabel: UILabel!
var user: PFUser!
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "LogInToFacebook" {
user = PFUser.currentUser()
userNamelabel.text = user.username
}
}
这就是我想要使用的segue:
override func perform() {
let sourceViewController: UIViewController = self.sourceViewController
let destinationViewController: UIViewController = self.destinationViewController
user = PFUser.currentUser()!
sourceViewController.view.addSubview(destinationViewController.view)
destinationViewController.view.transform = CGAffineTransformMakeScale(0.05, 0.05)
UIView.animateWithDuration(0.5, delay: 0.0, options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in
destinationViewController.view.transform = CGAffineTransformMakeScale(1.0, 1.0)
}) { (finished) -> Void in
destinationViewController.view.removeFromSuperview()
sourceViewController.presentViewController(destinationViewController, animated: false, completion: nil)
}
}