Как передать данные из API в tableViewCell, в другой tableViewCell в Swift 4? - PullRequest
0 голосов
/ 11 декабря 2018

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

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

1 Ответ

0 голосов
/ 11 декабря 2018

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

При этом я бы рекомендовал создать класс с именем 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]

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

...