Навигационное поведение без UINavigationController - PullRequest
0 голосов
/ 12 октября 2011

Я кодирую проект, в котором некоторые продукты с соответствующими категориями и подкатегориями читаются из файла XML и затем должны отображаться в UITableView.

Проблема в том, что нет фиксированной глубины уровней(тег xml выглядит следующим образом: Категория> подкатегория> подкатегория> ...> и т. д.), поэтому у меня не может быть фиксированного набора представлений и, следовательно, для использования UINavigationController.

Итак, на данный моментэто работает отлично - я читаю данные из некоторых NSMutableArrays, которые я загрузил из файла XML, и я показываю их в UITableView.Работать как задумано.Объекты даже имеют ссылки друг на друга, и поэтому новый набор данных является дочерним по отношению к элементу, который последний раз был нажат на UITableView.

Но, очевидно, мне нужна кнопка возврата, и вот где я застрял, яя уже делал это с помощью UINavigationController, но я не могу найти способ

a) добавить кнопку возврата на панель навигации (я добавил UINavigationBar через IntefaceBuilder и связал его с IBOutlet)

b) связать некоторый код для вызова предыдущего набора данных при нажатии кнопки.

Любая помощь?

Ответы [ 2 ]

0 голосов
/ 12 октября 2011

Если вы хотите достичь этого, вы должны реализовать структуру стека с ее функциями push и pop.Точно так же, как работает UINavigationController.Если ваше решение не является полностью настроенным, я бы просто использовал UINavigationController, выдвигающий UITableViewControllers, и сделал так, чтобы оно обрабатывало мне стек, а не заново изобретал колесо.

0 голосов
/ 12 октября 2011

Вы все равно должны следовать обычной схеме проектирования контроллера навигации.Если у вас есть несколько уровней категорий, вызовите один и тот же контроллер представления рекурсивно .

Однажды я сделал такую ​​реализацию (также на основе XML-файла), где в didSelectRowAtIndexPath: я бы проверял, есть ли у выбранного объекта больше «потомков» - в этом случае я бы выдвинул другое эквивалентное представлениеконтроллер на вершине стека навигации;если нет, я бы представил контроллер детального вида.

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