У меня есть два UITableViewControllers, скажем, первый - это пациент, второй - медицина.Нажатие на одну ячейку TableViewCell первого UITableView (пациента) приведет ко второму UITableView, который показывает лекарства этого выбранного пациента.У меня есть мой Show Segue, определенный на раскадровке.
Позвольте мне описать, с какой проблемой я иногда сталкиваюсь.Я нажимаю на одного пациента, он не сразу переходит на экран медицины.Навигация не стартует сразу.Через некоторое время, например, через полсекунды, я снова нажимаю на пациента, затем внезапно два контроллера UITableViewControl для медицины перемещаются влево, причем первый быстро покрывается вторым.Я уверен, что оба контроллера Medicine UITableViewController находятся в стеке Navagation Controller, потому что я могу нажать кнопку «Назад» в левом верхнем углу и все же перейти на первый экран «Медицина».
Эта проблема возникает очень редко, обычно при первом открытии приложения после установки.Я видел это как на симуляторах, так и на реальных устройствах.Для вашей информации я проверяю разрешение местоположения на втором экране, экране Медицины, и спрашиваю его, если оно не было предоставлено.
Итак, в чем проблема?Как я могу это исправить?Любой ресурс, связанный с этим?Пожалуйста помоги.
Раскадровка
Код (PatientTVController.swift)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
super.prepare(for: segue, sender: sender) // call parent
guard segue.source is PatientTVController else {
fatalError("Unexpected source: \(segue.source)")
}
guard let serviceTableViewController = segue.destination as? ServiceTVController else {
fatalError("Unexpected destination: \(segue.destination)")
}
guard let selectedPatientCell = sender as? PatientTableViewCell else {
fatalError("Unexpected sender: \(String(describing: sender))")
}
guard let indexPath = self.tableView.indexPath(for: selectedPatientCell) else {
fatalError("The selected cell is not being displayed")
}
let selectedPatient = patients[indexPath.row]
// set patient id here,
}