TableView dynamic cell to next tableview


#1

Всем привет! Вероятно вопрос уже обсуждался, но ни чего подобного не нашел.
Задача достаточно простая:

  1. Есть большой json
  2. на первом экране, я хочу открывать первый уровень
  3. на втором второй
  4. и так далее

но увы не могу найти примеров, возможно кто-то сможет мне накидать ссылок. Заранее спасибо


#2

Дайте ответ на два вопроса:

  1. Как получить доступ к первому уровню json
  2. Как получить доступ ко второму уровню json

Я так предполагаю что как передавать данные между контроллерами Вы знаете?


#3

Сохраняйте все в глобальные переменные и обращайтесь к ним на обоих контроллерах
Либо пересдавайте это все между контроллерами через prepareForSegue

Если стоит вопрос как распарсить JSON - рассмотрите комбинацию из Alamofire + SwiftyJSON


#4

Спасибо за ответы!

Я как раз использую Alamofire + SwiftyJSON. Но что делать далее я не знаю, поэтому и попросил пример. Наверняка это уже где-то в интернете есть, но найти не могу.


#5

https://drive.google.com/open?id=0B6sOOjNwehX6WGp2QlgxUEo1LUU

Вот приложение с примером использования


#6

Пример, безусловно крутой, но для меня к сожалению, много лишнего.


#7

Ну по факту в нем есть все, что вам нужно: распарсивание JSON, передача данных между контроллерами, вот это все


#8

В принципе, суть уловил из примера, однако, уже у себя, я получаю, ожидаемую ошибку в методе

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "next"{
        let destinationVC = segue.destination as! TestContoller
        let indexPath = self.tableView.indexPathForSelectedRow
        destinationVC.test = self.test[(indexPath?.row)!]
    }
}

fatal error: Index out of range

Я так понимаю, это происходит потому, что результат еще не получен?


#9

Очевидно вы пытаетесь обратиться к несуществующему элементу массива

Так что да: он либо еще не создан, либо вы передаете ему неправильный индекс


#10

Я разобрался, ваш пример оказался очень хорошим. Спасибо


#11

Не за что. Обращайтесь)