【发布时间】:2020-10-29 08:21:12
【问题描述】:
大家下午好,
我正在尝试从 graphrequest 获取数据并能够将数据传递给另一个 viewController,但显然它没有保存在变量中,在进行查询之外,数据被删除,它没有t 保存在变量中。
你们中有人遇到过这个问题吗?
我将代码留在我的第一个 viewController 下方
import UIKit
import FBSDKLoginKit
class ViewController: UIViewController,FBSDKLoginButtonDelegate {
@IBOutlet var test: UILabel!
var comprobacion = "";
override func viewDidLoad() {
super.viewDidLoad()
if let token = FBSDKAccessToken.current(), !token.isExpired {
let loginButton = FBSDKLoginButton()
loginButton.center = view.center
loginButton.layoutIfNeeded()
loginButton.delegate = self
view.addSubview(loginButton)
loginButton.awakeFromNib()
loginButton.readPermissions = ["public_profile", "email"]
}else{
let loginButton = FBSDKLoginButton()
loginButton.center = view.center
loginButton.delegate = self
view.addSubview(loginButton)
loginButton.layoutIfNeeded()
loginButton.awakeFromNib()
loginButton.readPermissions = ["public_profile", "email"]
}
}
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
let resultado = result?.token?.tokenString
let request = FBSDKLoginKit.FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"email,name"], tokenString: resultado, version: nil, httpMethod: "get")
request?.start(completionHandler: { connection , result, error in
let datos: [String:AnyObject] = result as! [String:AnyObject];
self.comprobacion = (datos["email"] as! NSString) as String;
print("campos \(String(describing: result) )")
self.test.text = self.comprobacion
})
performSegue(withIdentifier: "second", sender: self)
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "SecondController") as! SecondController
self.present(newViewController, animated: true, completion: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let destino = segue.destination as! SecondController
destino.recibir = comprobacion;
}
func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
print("GoodBye... Hommi")
}
}
我将代码留在我的第二个 viewController 下方
import UIKit
class SecondController: UIViewController {
@IBOutlet var Email: UILabel!
var recibir: String!
override func viewDidLoad() {
super.viewDidLoad()
print("recibir \(String(describing: recibir))")
Email.text = String(recibir)
}
}
我意识到电子邮件没有保存在我的变量中,因为它在 clousure request.start 之外,如果我打印变量它是空的。
有什么帮助吗?
【问题讨论】:
标签: ios swift facebook-sdk-4.0