Добрый день, сообщество,
Я пытаюсь получить данные из graphrequest и передать их другому viewController, но, по-видимому, они не сохраняются в переменной, за исключением того, что запрос, данные удаляются, они не сохраняются в переменной.
Была ли у кого-нибудь из вас эта проблема или что-то в этом роде?
Я оставляю свой код ниже моего первого 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. Начать, если я напечатайте переменную, она пуста.
помощь?