как перезагрузить табличное представление после определенного времени - PullRequest
0 голосов
/ 30 сентября 2018

Мне нужно вызвать API, и когда API - это вызов, я должен перейти на следующий контроллер и показать таблицу со списком данных, но моя проблема в том, что когда я перехожу к следующему контроллеру, вызов API еще не завершен, поэтому просмотр таблицыстановится пустым.Есть ли способ, чтобы я мог перезагрузить представление таблицы через определенное время

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

При вызове API у вас должен быть какой-то обработчик завершения.Используйте его!

Вы можете либо 1) показать представление таблицы после завершения вызова API, либо 2) сначала показать представление таблицы, а затем перезагрузить его после завершения вызова API.

псевдокод:

// 1)
showLoadingIndicator()
performAPICall(completion: { data, error in
    if error != nil {
        performSegue(withIdentifier: "show table view", sender: data)
        // remember to pass the data in prepareForSegue
        hideLoadingIndicator()
    }
})

// or

// 2)
performSegue(withIdentifier: "show table view", sender: nil)

// in the table view controller,
performAPICall(completion: { data, error in
    if error != nil {
        self.data = data
        self.tableView.reloadData()
    }
})
0 голосов
/ 30 сентября 2018

вы можете сделать это с помощью DispatchTime.

let time =  DispatchTime.now() + 5
            DispatchQueue.main.asyncAfter(deadline: time) {
                // reload your table view here
            }

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...