我是 iPhone 编码的新手,我正在尝试通过 PrepareForSegue 将结构传递给我的第二个 VC。
在我的主视图 Controller 中,我有以下结构
struct AccountStruct {
var account: String
var balance: Double
var objectId: String
}
var accountsFromStruct : [AccountStruct] = []
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
accountsFromStruct.append(AccountStruct(account: "Checking", balance: 451.455, objectId: "12354785"))
accountsFromStruct.append(AccountStruct(account: "Savings", balance: 871.455, objectId: "123dfdf5"))
let SecondVC = segue.destinationViewController as! PresentedViewController
SecondVC.passedAccountStruct = accountsFromStruct
}
然后在我的第二个 VC 中,我有下面的代码来设置 var 来保存传递的结构 变种 passedAccountStruct : [PassedAccountStruct] = []
我得到的错误是 “无法将‘ViewController.AccountStruct’类型的值转换为预期的参数类型‘PresentedViewController.PassedAccountStruct’”
最佳答案
您在 ViewController
和 PresentedViewController
中复制了 PassedAccountStruct
。所以有两个不同的PassedAccountStruct
。请保留一个。例如,您保留了 ViewController
一个,您可以在其他 View Controller 中通过 ViewController.AccountStruct
访问它。
关于swift - 使用 Swift 通过 PrepareForSegue 传递结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37176925/