0

データをビューに渡したいAビューをビルドしてAビューに表示することができますが、セル、それはクラッシュしました。そして、コード上に問題が表示されます。スウィフト3セルデータを渡すfun with didSelectRowAt indexPathが選択行を選択した後にクラッシュする

vcTwo.selectedzones.zones = [selectedCity]

fatal error: unexpectedly found nil while unwrapping an Optional value (lldb)

私のコード

構造体モード:

struct Location { 
    var city: String! 
    var zones = [String]() 
} 
var city = ["KHT", "TPAP", "TNNY"] 

let kh = Location.init(city: "KHT", zones: ["sami", "zami", "zomi", "komi", "shini"]) 
let tpa = Location.init(city: "TPAP", zones: ["mid", "east", "anci", "zochi"]) 
let tnn = Location.init(city: "TNNY", zones: ["TN1","TN2", "TN3", "TN4", "TN5"]) 

ここでは、AのViewControllerコードです

BのViewController:

import UIKit 

class secondViewController: UITableViewController { 

    var selectedzones: Location! 


    override func viewDidLoad() { 
     super.viewDidLoad() 

    } 

    override func numberOfSections(in tableView: UITableView) -> Int { 

     return 1 
    } 

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

     return selectedzones.zones.count 
    } 

は、FUNC didSelectRowAt indexPathで間違ったいずれかの部分がありますか?

答えて

0

を助けることを願っていますが、最初のコントローラに

 let kh = Location.init(city: "KHT", zones: ["sami", "zami", "zomi", "komi", "shini"]) 

    vcTwo.selectedzones = kh 
+0

ありがとうございます!今はクラッシュすることはありませんが、Bviewにデータを渡すことはできません。それは何でもする。クラッシュする必要はありません。次のビューに切り替えます。 –

+0

完全なデータを含む最初のコントローラの位置を初期化します。それはそれを渡す – junaidsidhu

+0

申し訳ありません、私はプログラミングでは新しいです!最初のビューでfunc viewDidLoad()の上にある "var location = [Location]()"を意味しますか?または私のすべての場所ストラクチャ –

0

あなたがzonesをaccesssしようとしているが、それがクラッシュしてしまいますので、あなたがLocationを配分していないこの

class secondViewController: UITableViewController { 

    var selectedzones = Location() 
} 

を試してみてください。 が、それはここにあなたの

+0

ありがとうございました! –

0

代わりのオプションをselectedZoneを初期化する必要がある問題

 vcTwo.selectedzones.zones = [selectedCity] 

です!オプションを使用しますか?

class secondViewController: UITableViewController { 
var selectedzones: Location? 

NOT 

class secondViewController: UITableViewController { 
var selectedzones: Location! 
+0

アドバイスありがとう!どちらもビューAが表示されますが、Bは表示されますが、問題はありません。あなたの提案は、私がより多くのことを学び、涼しくて、それを感謝させます。 –

関連する問題