gpt4 book ai didi

swift - 在两个 View Controller Swift 之间传递变量时出错

转载 作者:行者123 更新时间:2023-11-28 08:14:04 27 4
gpt4 key购买 nike

我已经为此苦苦挣扎了一段时间,我已经接近拥有一个功能强大的应用程序了,所以我很着急。我已经从 Facebook 图形请求中获得了一些基本信息,并从字典中提取了名称。然后我使用 prepareforsegue 将名称传递给第二个 View Controller 。我计划在各种不同的场景中使用“名称”作为唯一标识符。

不幸的是,我收到一个我不知道如何修复的错误:'UIStoryboardSegue'类型的值没有成员'SecondViewController'。我已经在第二个 View Controller 中声明了 var:var destViewController: String!

如有指点,将不胜感激。我非常沮丧,因为在这一切正常之前我无法继续做任何其他事情。

代码在这里:

let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = FBSDKLoginBehavior.web
fbLoginManager.logIn(withReadPermissions: ["public_profile","email"], from: self) { (result, error) -> Void in
if error != nil {
print(error?.localizedDescription)
self.dismiss(animated: true, completion: nil)
} else if (result?.isCancelled)! {
print("Cancelled")
self.dismiss(animated: true, completion: nil)
} else {

}
}

FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, relationship_status, gender, location, education"]).start(completionHandler: { (connection, result, error) -> Void in
if (error == nil){
let fbDetails = result as! NSDictionary
print(fbDetails)

if let userDataDict = result as? NSDictionary {
let name = userDataDict["name"] as? String

func prepareForSegue(segue: UIStoryboardSegue!, sender: Any!) {
if (segue.identifier == "loginToHome") {
//Checking identifier is crucial as there might be multiple
// segues attached to same view
var destViewController = segue.SecondViewController as? SecondViewController;
destViewController.name = name

var bookUniverse = [String]()

}


}

}
}

最佳答案

您不应该将 prepare for segue 函数放在 FBSDKGraphRequest 中。你应该这样写:

self.performSegueWithIdentifier("loginToHome", sender: self)

而不是只传递名称,为什么不在第二个 ViewController 中有一个可以传递的模型对象呢?如果您非常喜欢这个名称,请创建一个类变量并将名称分配给它,然后将类变量传递给第二个 View Controller 。

func prepareForSegue(segue: UIStoryboardSegue!, sender: Any!) {
if (segue.identifier == "loginToHome") {
//Checking identifier is crucial as there might be multiple
// segues attached to same view
var destViewController = segue.SecondViewController as? SecondViewController;
destViewController.name = name

var bookUniverse = [String]()

}
}

关于swift - 在两个 View Controller Swift 之间传递变量时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42965525/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com