2016-10-10 7 views
1

私がしたいのは、Jsonファイルの情報をXcode(Swift)のTableViewに表示することです。私がしたい例は次のとおりです。SwiftのJsonファイルから複数のTableViewを表示するにはどうすればよいですか?

国、都市、および都市のいくつかの追加情報から私のjsonデータを検索したいと思います。私はテーブルビューで国の名前を表示する最初の画面で:

  • ブラジル
  • ドイツ
  • フランス
  • USA
  • アルゼンチン
  • 等...

その後、私はある国の細胞(例えばUSA)の細胞を凍結すると、新しいTableViewを開きたい米国のすべての州(または都市)が含まれています。だから私は、アメリカにCLICと私は2番目の画面で、以下の情報を持っている:

  • フロリダ
  • ニューヨーク
  • カリフォルニア
  • ネバダ
  • 等...

をと最後に、ニューヨーク州などいくつかの州(または都市)で結婚するとき、私は選択した国(ニューヨーク州)からのいくつかの追加情報を表示したいと思います。だから私は持っている3番目の画面で:

「ニューヨークは等...素晴らしい都市である」

私は別のテーブルビューからnavegateしたいので、私は「バックを追加する方法を知っているドント"ボタンをクリックしてください。国と都市を別のセルに表示したいので、私はそれらをクリックして情報を表示できます。ここで

は私のJSONの例である:

[ 
    { 
     "country": "Brazil", 
     "city": [ 
      "Sao Paulo", 
      "Rio de Janeiro" 
     ] 
    }, 
    { 
     "country": "Germany", 
     "city": [ 
      "Berlin", 
      "Frankfurt" 
     ] 
    }, 
    { 
     "country": "France", 
     "city": [ 
      "Paris", 
      "Marselle" 
     ] 
    }, 
    { 
     "country": "USA", 
     "city": [ 
      "Florida", 
      "New York", 
      "California", 
      "Nevada" 
     ] 
    }, 
    { 
     "country": "Argentina", 
     "city": [ 
      "Buenos Aires", 
      "Mendoza", 
      "La Plata" 
     ] 
    }, 
    { 
     "country": "England", 
     "city": [ 
      "London", 
      "Manchester", 
      "Liverpool" 
     ] 
    } 
] 

誰もが私はこれを行うのを助けることができますしてください?どうしたらいいですか?どうもありがとう!

+0

Btw:あなたのjsonの例は有効ではありませんjson。キー 'city'の値は配列でなければなりません –

+0

「配列でなければならない」とはどういう意味ですか?私のJsonの例の正しい表現は何でしょうか? – Mario

+0

RamenChefの編集を参照してください –

答えて

3

これは非常に非常にシンプルで、かつ作業のほとんどはiOSとのXcodeで行われ、あなたはそんなにしないだろうとdict[dict.keys[selected.row]][@"cities"][indexPath.row]を返します作業。

UITableView,UINavigationControllerおよびStoryboardsこれらのトピックでどのようにすればよいか知る必要があります。

thisチュートリアルに従うことができ、非常に簡単な作業であることがわかります。ここで

の手順です:すべての

  1. まず、あなたはストーリーボードでのアプリのUIを設計する必要があります。 「国」画面と都市の別の画面、および「都市の詳細」画面の画面が表示されます。
  2. 最初の画面をUINavigationControllerに埋め込み、すべてのナビゲーション項目を無料で入手できるようにします。
  3. 国のデータを国の画面テーブルビューに表示します。
  4. [国]テーブルビューから[都市]画面にセグを作成します。国が選択されると、都市が都市画面に表示されます。
  5. prepareForSegueという方法(前述のチュートリアルで説明)を使用して、選択した国オブジェクトを都市画面に渡します。
  6. 都市のリストを都市画面に表示します。
  7. Cities画面のCities Details画面からナビゲートするときも同じ操作を行います。

最初にチュートリアルを読んで、私が言及した手順をよく理解してください。それは約1時間かかると非常に簡単な作業です。

+0

HELOコマンドミナス、お時間とあなたの答えをありがとうございました。しかし、どうすればJsonファイルでそれを行うことができますか? JsonファイルをSwiftに解析する方法について説明する別のチュートリアルはありますか?ちょうど私がやろうとしているように? – Mario

+0

JSONの構文解析は思ったよりも簡単です。 [this](https://www.raywenderlich.com/120442/swift-json-tutorial)チュートリアルをチェックしてください。 NSJSONSerializationを使うのはとても簡単です。さらなる助けが必要な場合は、教えてください。 –

+0

私は少し失われていると思う。あなたが私のアプリで私を助けることができれば、私はそれを非常に感謝します。郵便、スカイプ、どこに書いてもいいですか?ありがとうミナス! – Mario

0

あなたのテーブルビューのデータソースメソッドは、このユースケースのために設計されています

はなステートメント場合は、データソースの方法にcellForRowへif (selected)を追加didSelectRow

のUIの状態を追跡するために保存されたNSIndexPath *selectedを使用し、 numberOfRows

selected == nilロジックブランチで

、行数のためreturn dict.keys.countとあなたの行のタイトル

として dict.keys[indexPath.row][@"country"]戻ります selected != nilブランチで

、行数のためreturn dict[dict.keys[selected.row][@"cities"].keys.countとあなたの行のタイトル

関連する問題