Как передать данные из API в tableViewCell, в другой tableViewCell в Swift 4?

Я работаю над приложением для отслеживания ТВ, где вы можете искать телевизионные шоу и сохранять их, чтобы увидеть, когда выйдет новый эпизод.

У меня вопрос, как бы я получить данные фильма из клетки в searchTableViewController а также present выбранные данные в ячейку на myShowsTableViewController?

1 ответ

Это очень широкий вопрос и, как правило, не подходит для Stackru, который предназначен для более "детальных вопросов".

Тем не менее, я бы порекомендовал создать класс под названием DataManager или что-то типа того. Что касается вызовов API, я бы рекомендовал использовать что-то вроде Alamofire для выполнения вызовов API. Наконец, я бы порекомендовал прочитать Codable протокол для декодирования JSON, который API отправляет обратно. Когда вы декодируете свой JSON, вы захотите сохранить структуры где-нибудь, где ваш контроллер представления сможет их увидеть.

Чтобы использовать CocoaPods, вот хороший учебник (вы бы использовали их для Alamofire).

Ваш менеджер данных будет выглядеть примерно так (я буду использовать NSObject для простоты, но вы можете просто создать свой собственный класс):

struct Shows: Codable {
    // Whatever the API sends back, you've got to map it here
}

class DataManager: NSObject {
    var shows: [Shows] = [] // empty array of shows to start

    func methodToGetAPIResponse() {
        // Alamofire call & JSON decoding here
        // Once you get a valid response, shows = try JSONDecoder().decode...
    }
}

Вы могли бы так что-то подобное для вашего DataManager по вашему мнению класс контроллера:

let dataManager = DataManager()

Затем в ваших методах UITableViewDataSource, numberOfRowsAtIndexPath было бы return dataManager.shows.count а также cellForRowAtIndexPath вы бы заполучили объект для заполнения ваших ярлыков следующим образом:

let show = dataManager.shows[indexPath.row]

Во всяком случае, этого должно быть достаточно, чтобы вы начали. Удачи! Постарайтесь быть более детальным с вашими вопросами в будущем.

Другие вопросы по тегам