あるビューから次のビューにデータを渡すことができました。一連のビューコントローラとの間でデータをやりとりする方法
今私はビットを拡張し、3つのビューコントローラ経由でこのデータを渡す必要があります。
私は3つのビューコントローラ1.MileageControler、2.LocationsControler、および3.LocationChoiceControllerを持っています。
I 3上を1から2にデータを渡すことができる必要があり、その後、バック2.マイレージのcontrolerは、テキストボックスと、ユーザが走行距離を入力することを可能にする数字ボタンのシリーズを持っている。
EnterボタンをLocationControllerがありseque
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "segueLocationView") {
let passingData = segue.destinationViewController as! LocationViewController;
passingData.mileageToPass = DisplayStart.text
passingData.fuelAmountToPass = 0.00
passingData.startLocationToPass = "HOME"
passingData.endLocationToPass = ""
}
}
で次のように渡さ:
var mileageToPass: String!
var fuelAmountToPass: Double!
var startLocationToPass: String!
var endLocationToPass: String!
override func viewDidLoad() {
super.viewDidLoad()
labelStartMileage.text = "Start Mileage for this trip: " + mileageToPass
labelStartLocation.text = startLocationToPass
labelEndLocation.text = endLocationToPass
}
また、だからここに私は上のデータを渡すためにしようとしている...
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "segueChoiceMade") {
let passingData = segue.destinationViewController as! LocationChoiceViewController;
passingData.mileageToPass = mileageToPass
passingData.fuelAmountToPass = fuelAmountToPass
passingData.startLocationToPass = labelStart.text
passingData.endLocationToPass = txtEndLocation.text
if (sender === but_StartLocation) {
passingData.senderToPass = "Start"
} else if (sender === but_Destination) {
passingData.senderToPass = "End"
}
}
}
を持っていますユーザが位置を選択し、どのsenderToPass値が渡されたかに基づいて、選択された位置が格納され、startLocationToPassまたはendLocationToPassのいずれかに戻される次のビュー(LocationChoice)に再び送られる。 mileageToPassとfuelAmmountToPassは、格納されて戻ったLocationChoiceでは変更されません。
私がいる問題は、同じように...スレッド1に表示されるエラー:EXC_BAD_INSTRUCTION(コード= EXC_I386_INVOP、サブコード= 0x0の)私はこれについて間違った道を進んアム....
UINavigationControllerを使用してこのデータを渡すことができます。最初のVCにnavコントローラを追加し、サブクラス化し、いくつかのデータプロパティを追加して使用してください。 –