2016-10-10 62 views
1

我想要做的是将我的信息从Json文件显示到Xcode(Swift)上的TableView中。这里是我想要的示例:如何从Swift中的Json文件显示多个TableView?

我想从国家,城市和城市的一些辅助信息中检索我的json数据。在第一个屏幕我想显示在TableView中的国家的名字:

  • 巴西
  • 德国
  • 法国
  • 美国
  • 阿根廷
  • 等...

然后,当我在一个国家的单元格中(例如美国)打开一个新的TableView时包含来自美国的所有州(或城市)。所以我CLIC在美国,我在第二个屏幕的以下信息:

  • 佛罗里达
  • 纽约
  • 加州
  • 内华达
  • 等...

而且最后,当我在某个州(或城市)进行角逐时,例如在纽约,我想展示我选择的州(纽约)的一些辅助信息。因此,在第三屏幕我有:

“纽约是一个真棒城市......等等”

我想从一个tableview中到另一个navegate,所以我不知道如何添加“回“按钮在屏幕的顶部,为每个tableview。这些国家和城市我想在不同的细胞中展示,所以我可以在他们身上显示信息。

这里是我的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

顺便说一句:你的json例子不是有效的json。关键“城市”的值应该是数组 –

+0

你是什么意思“应该是一个数组”?什么是我的Json例子的正确表达式? – Mario

+0

查看RamenChef的编辑 –

回答

3

这是非常非常简单,大部分工作是由iOS和Xcode的时候,你会不会做这么多工作。

您需要了解以下主题:UITableViewUINavigationControllerStoryboards

你可以按照this教程,你会发现这是一个非常简单的任务。

这里的步骤:

所有的
  1. 首先,你需要设计一个故事板的应用程序UI。您将为“国家”屏幕创建一个场景视图,为城市创建另一个场景视图,为城市详细信息屏幕创建另一个场景视图。
  2. UINavigationController中嵌入第一个屏幕,以便免费获取所有导航内容。
  3. 在国家屏幕表格视图中显示国家数据。
  4. 从“国家”表格视图切换到城市屏幕。因此,选择一个国家时,其城市将显示在城市屏幕中。
  5. 使用方法prepareForSegue(在上述教程中描述)将选定的国家/地区对象传递到城市屏幕。
  6. 显示城市列表中的城市屏幕。
  7. 从“城市”屏幕城市详细信息屏幕导航时执行相同操作。

请先阅读教程,然后您将非常了解我提到的步骤。这是相当简单的任务,大约需要1个小时的时间。

+0

直升机米纳斯,感谢您的时间和你的答案。但我怎样才能做到这一点与Json文件?是否有另一个教程解释如何解析Json文件到Swift中?就像我想要做的一样? – Mario

+0

解析JSON比您想象的要简单得多。检查[this](https://www.raywenderlich.com/120442/swift-json-tutorial)教程。使用'NSJSONSerialization'非常简单。如果您需要进一步帮助,请告诉我。 –

+0

我觉得我有点迷路。如果你可以帮助我与我的应用程序,我将不胜感激。有没有邮件,Skype或任何我可以写信给你的地方?非常感谢米纳斯! – Mario

0

你的表视图数据源的方法是专为这种使用情况:

使用存储的NSIndexPath *selected跟踪didSelectRow

的UI状态,如果statment到数据源的方法if (selected)添加到cellForRow和numberOfRows

selected == nil逻辑分支,return dict.keys.count的行数,并返回dict.keys[indexPath.row][@"country"]作为标题为您排

selected != nil分支,return dict[dict.keys[selected.row][@"cities"].keys.count的行数,并返回dict[dict.keys[selected.row]][@"cities"][indexPath.row]作为标题为您排