2010-11-11 4 views
0

Мне нужно показать навигационное представление, в котором количество просмотров зависит от сервера. Поэтому я не могу жестко кодировать контроллеры представлений. Есть ли способ, которым я могу использовать 1 контроллер вида, и данные будут отправляться сервером. Таким образом, он будет работать следующим образом: 1. Получить данные с сервера ... показать навигация с помощью навигационного контроллера. 2. Как только я нажимаю на одну сущность ... Я получаю еще один набор данных с сервера ... используя тот же контроллер, показывают, что на экране ... и так далее ... поскольку я не уверен, до какого уровня мы может развернуться. 3. Как только пользователь нажмет на кнопку «Назад» ... Я буду использовать данные, кэшированные локально, чтобы присутствовать в одном представлении ...Контроллер навигации - данные, передаваемые сервером

У вас есть какие-либо проблемы. Мне интересно, могу ли я несколько раз нажимать один и тот же объект класса контроллера в стеке.

Просим руководствоваться.

ответ

0

Пока они разные объекты, он будет работать нормально.

YourNavViewController *firstNavViewController = [[YourNavViewController alloc] initWithNibName:@"YourViewXib" bundle:nil]; 
[self.navigationController pushViewController:firstNavViewController animated:YES]; 
[firstNavViewController release]; 

потом на что один:

YourNavViewController *secondNavViewController = [[YourNavViewController alloc] initWithNibName:@"YourViewXib" bundle:nil]; 
[self.navigationController pushViewController:secondNavViewController animated:YES]; 
[secondNavViewController release]; 

т.д.

0

вообще никаких проблем. Вы можете динамически вводить UIViewControllers в ваш массив ViewController UINavigationControllers. Вы должны, как вы упомянули, внедрить механизм кэширования контента на устройстве, поэтому вам не нужно постоянно перезагружать все.

Одним из подходов может быть структура xml, которую вы загружаете с сервера, только если она отличается от того, что вы сохранили локально на устройстве (сравните, например, через хэши, номера версий временных меток обновления).

0

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

Таким образом, если данные, которые вы собирали, были XML (например), и у вас была иерархия объектов, которые вы анализировали из класса NSXMLParser, для каждого уровня в иерархии вы могли бы создать новый объект представления, содержащий данные в этот уровень, и нажмите это.

Смежные вопросы