2016-10-10 3 views
1

Я хочу сделать, чтобы отобразить мою информацию из Json-файла в моем TableView на Xcode (Swift). Вот пример, который я хочу:Как отобразить несколько табличных представлений из Json-файла в Swift?

Я хочу получить данные json из стран, городов и некоторую дополнительную информацию из городов. На первом экране я хочу, чтобы отобразить название страны в TableView:

  • Бразилия
  • Германия
  • Франция
  • США
  • Аргентину
  • и т.д ...

Затем, когда я clic в ячейке одной страны (например, в США), я хочу открыть новый TableView, который содержит все государства (или города) из США. Так что я CLIC на США, и я иметь следующую информацию во втором экране:

  • Флорида
  • Нью-Йорк
  • Калифорнии
  • Невада
  • и т.д ...

И наконец, когда я кликаю в каком-то штате (или городе), например, в Нью-Йорке, я хочу отобразить некоторую дополнительную информацию из выбранного мной штата (Нью-Йорк). Таким образом, в третьем окне у меня есть:

«Нью-Йорк является удивительным городом ... и т.д.»

Я хочу 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

Btw: ваш пример json недействителен json. Значение для ключа «город» должно быть массивом –

+0

Что значит «должен быть массив»? Каким будет правильное выражение для моего примера Json? – Mario

+0

См. Редактирование RamenChef –

ответ

3

Это довольно так просто, и большая часть работы выполняется прошивкой и Xcode, вы не будете делать так много Работа.

Вам необходимо узнать, как в этих темах: UITableView, UINavigationController и Storyboards.

Вы можете следить за учебником this, и вы обнаружите, что это очень простая задача.

Вот шаги:

  1. Прежде всего, необходимо разработать приложение пользовательского интерфейса в окне редактора. Вы создадите представление сцены для экрана «Страны», а другое - для городов, а другое - для экрана «Сведения о городах».
  2. Код для вставки в первый экран: UINavigationController, так что вы получите бесплатную навигацию.
  3. Показать данные стран в табличном представлении Страны.
  4. Сделайте segue из таблицы Table Table на экран Cities. Таким образом, когда страна выбрана, ее города отображаются на экране городов.
  5. Передайте выбранный объект страны на экран Города, используя метод prepareForSegue (описанный в учебнике, упомянутом выше).
  6. Показать список городов на экране городов.
  7. Выполняйте то же самое при навигации по экрану Cities Cities Details.

Сначала прочитайте учебное пособие, затем вы хорошо поймете, какие шаги я упомянул. Это довольно простая задача, которая занимает около 1 часа.

+0

Helo Minas, спасибо за ваше время и для ответа , Но как я могу сделать это с помощью Json-файла? Есть ли еще один учебник, который объясняет, как разбирать Json-файл в Swift? Точно так же, как я пытаюсь это сделать? – Mario

+0

Разбор JSON настолько прост, что вы думаете. Проверьте [this] (https://www.raywenderlich.com/120442/swift-json-tutorial) учебник. Это так просто, используя 'NSJSONSerialization'. Если вам нужна дополнительная помощь, пожалуйста, скажите мне. –

+0

Я думаю, что немного потерял. Если бы вы могли помочь мне с моим приложением, я был бы очень признателен. Есть ли почта, скайп или что там, где я могу написать вам? Большое спасибо Минас! – Mario

0

Ваших таблицы методов источника данных предназначены для этого случая использования:

Используйте хранимую NSIndexPath *selected отслеживать состояние пользовательского интерфейса в didSelectRow

Добавить если Постулаты ваших методов источника данных, 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] в качестве названия для вашей строки

Смежные вопросы