Я сделал табличное представление со списком городов. Когда я выбираю ячейку города, она передает название города и показывает прогноз погоды в городе, используя переход в раскадровке. Однако каждый раз, когда кажется, что он создает новый контроллер представления. Но я не хочу, чтобы это происходило вот так. Я хочу, чтобы он мог загрузиться только один раз. Для пользователей, когда у них нет Интернета, они все еще могут видеть данные, и я сделал для них кнопку для обновления данных. вот мой код:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "showCurrentWeather", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showCurrentWeather"{
let dvc = segue.destination as? WeatherViewController
let selectedIndexPath = self.tableView.indexPathForSelectedRow
if let selectedRow = selectedIndexPath?.row{
dvc?.infoFromViewOne=cityName[selectedRow]
}
}
Я пытаюсь использовать навигационный контроллер, чтобы нажать на контроллер просмотра,
weatherViewController=self.storyboard?.instantiateViewController(withIdentifier: "weatherViewController") as! UIViewController
self.navigationController?.pushViewController(weatherViewController!, animated: true)
и в WeatherViewController я сделал пользовательскую кнопку «Назад», чтобы открыть контроллер представления,
@objc func backAction(){
navigationController?.popViewController(animated: true)
}
Однако при использовании навигационного контроллера я не знаю, как передать название города из выбранной ячейки в контроллер представления погоды. Как я могу решить проблему? Спасибо