我是新來的iPhone編碼,我想通過PrepareForSegue將結構傳遞給我的第二個VC。通過PrepareForSegue傳遞結構Swift
以我主視圖控制器我有以下結構
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'的值轉換爲期望的參數類型'PresentsViewController.PassedAccountStruct'」
你的結構是類型AccountStruct的類型不是PassedAccountStruct的。將[PassedAccountStruct]更改爲[AccountStruct]。 – Gruntcakes
正如@SausageMachine所說,你的第二個視圖控制器中的類型應該是[AccountStruct]而不是[PassedAccountStruct],並且用= []將它初始化爲空數組沒有任何意義。這應該被設置爲一個可選的var,在你將其設置爲segue之前它將爲零。這看起來像var passedAccountStruct:[AccountStruct]? – user3847320