У меня есть табличное представление, и как только кто-то нажимает на ячейку, должен появиться контроллер представления. Это код для моего tableView (_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) метод:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
//previously written code
navigationController?.popViewController(animated: true)
}
Все работает отлично, за исключением одного случая: как только загрузится представление, я пытаюсь нажать на любую клетку немедленно. В этой ситуации popViewController не выполняется, и я получаю эту ошибку:
popViewControllerAnimated: вызывается для UINavigationController, когда происходит существующий переход или презентация; стек навигации не будет обновлен.
Я знаю, этот вопрос ранее уже появлялся в StackOverflow, но я не нашел другого решения, кроме:
DispatchQueue.main.asyncAfter(deadline: .now() + //time) {
navigationController?.popViewController(animated: true)
}
Он прекрасно работает , но мне не нужна задержка при нажатии на ячейку таблицы. Как только презентация заканчивается, popViewController работает как требуется, и задержка выполнения не требуется.
Есть ли другой способ сделать это? Или как-то получить уведомление, когда переход будет готов, чтобы я мог потом всплыть?