для моего приложения мне нужно нажать один и тот же TableViewController более одного раза. Когда пользователь вводит команду didSelect, мне нужно нажать тот же контроллер в стеке навигации.Нажатие одного TableViewController в стек навигации несколько раз
Мое приложение - это приложение для файлового менеджера, и оно подключается к ftp-серверу и показывает пользователю то, что внутри. Но могут быть папки внутри папок, которые содержат больше папок (бесконечно).
Для этого я не могу создать много TableViewControllers в раскадровке и когда я пытаюсь нажать тот же контроллер в панель навигации с этим:
navigationController?.pushViewController(self, animated: true)
я получаю ошибку говорит, что я не могу нажать тот же контроллер в nav stack. Так я создать новый экземпляр моего контроллера и попытаться подтолкнуть, как это:
let newMyTableVC = MyTableVC() navigationController?.pushViewController(newMyTableVC, animated: true)
Но с этим я также получаю ошибку говорит, что:
«не удалось из очереди клетки с идентификатором FolderCell - должен зарегистрировать нить или класс для идентификатора или подключить прототип ячейки в раскадровке.
Итак, что я понимаю из-за этой ошибки, которую использует мой первый TableViewController s мой идентификатор ячеек, и он находится в памяти. Когда я пытаюсь передать новый экземпляр моего TableViewController с тем же идентификатором ячейки, он выходит из строя, потому что ячейка уже существует с тем же идентификатором. (Возможно, я ошибаюсь).
If i am on right track doing this with approach at the above {
How do i reuse cells with dynamic identifier and provide data to them.
} else {
How do i accomplish what i want?
}
Благодарим за ваше время.
Зачем создавать новый контроллер каждый раз, а не просто изменить набор данных, совпадающий ток каталог? Затем используйте функцию reloadData() TableView? – Guardanis
Его отличный подход. Дайте контроллеру табличного представления идентификатор раскадровки и создайте экземпляр self.storyboard instantiateViewControllerWithId. – danh
привет, ребята, спасибо за ответ. Мне нужно каждый раз создавать новый контроллер, потому что я хочу, чтобы пользователь мог вернуться из последнего контроллера представления папок в кеш, не дожидаясь нового сетевого запроса и перезагрузки tableView. Кроме того, это плохой пользовательский опыт, когда пользователь отбирает ячейку, и вы перезагружаете данные, а не нажимаете новый контроллер просмотра в стек навигации. –