2017-07-02 6 views
0

私はタイトルが少し曖昧であることを知っているので、私に説明させてください。私はMainTableViewControllerDetailTableViewControllerと呼ばれる2つのTableViewControllerを持っています。また、私は複数のアレイを作成している、という考えに階層を介して接続されている:私はmainCarChoice配列とMainTableViewControllerを移入し、3つのオプションのいずれかをタッチし、segueを実装するために管理している2つの関連するTableViewControllerアレイを接続します

let maincCarChoice = ["Toyota", "Nissan", "Ford"] 

let toyotaCarChoice = ["Prius", "Camry", "Etios"] 
let nissanCarChoice = ["Altima", "Maxima", "Rogue"] 
let fordCarChoice = ["Fusion", "Focus", "Explorer"] 

、行きますDetailTableViewControllerにしかし、私はどのようにDetailTableViewControllerをそれぞれの配列に入れようとしているのかについては確信が持てません。これはMainTableViewControllerのユーザーの選択に依存しています。どんな助けもありがとうと思います。

var vehiclesArray: [String]?

この配列はDetailTableViewController内部テーブルビューのデータソースとして果たすべき:それを達成するために

+0

:このようprepareメソッドをオーバーライドその後

var vehiclesDictionary = ["Toyota" : ["Prius", "Camry", "Etios"], "Nissan" : ["Altima", "Maxima", "Rogue"], "Ford" : ["Fusion", "Focus", "Explorer"]] 

をmaincCarChoiceからtoyotaCarChoice、nissanCarChoiceなどにマッピングします。次に、マッピングに基づいて、個々の配列を割り当てます。 – adev

+0

こんにちは、申し訳ありません、私はプログラミングに慣れていません。データマッピングが何であるかを私に説明してもらえますか、それとも私がそれについて読むことができる場所へのリンクを送ってくれますか? –

+0

@Moe Abdul-Hameedの答えで確認してください。それがそれを行う一つの方法です。 – adev

答えて

2

一つの方法は、このようDetailTableViewControllerに、文字列のメンバーの配列を追加することです。 MainTableViewController内部の今

、:

まず、車のブランドとモデルを運ぶ辞書追加:あなたはデータを持っている必要があり

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if segue.identifier == "YourIdentifier" { 
      if let indexPath = self.tableView.indexPathForSelectedRow { 
       let selectedVehicle = vehicles[indexPath.row] 

      if let nextScene = segue.destination as? DetailTableViewScene { 
       nextScene.vehiclesArray = self.vehiclesDictionary[selectedVehicle] 
      } 
     } 
    } 
} 
+1

これは、キーを「Toyota」、値を配列として持つこのクラスの辞書マッピングでもあります。この機能を単純化することができます。 – adev

+0

あなたはそうです、ありがとう!あなたの提案を反映するようにコードを更新しました。 –

+0

偉大な、すでにあなたの答えをupvoted。 – adev

関連する問題