Более глубокое понимание UINavigationController - PullRequest
1 голос
/ 23 апреля 2011

Я пытаюсь лучше понять создание сложных навигаций с помощью UINavigationController.Пожалуйста, если я ошибаюсь в каком-либо предположении (что так возможно), просто дайте мне знать.

Насколько я вижу, кажется, что UINavigationController специально разработан для достижения такой навигации, когда нажатие новогоКонтроллер обеспечивает более глубокую детализацию данных «линейным» способом.Вы можете пойти дальше в навигации, «нажав» или «выдвинув» контроллер.

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

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

Как, например, перейти к представлению, которое находится в стеке на два уровня ниже (например, что будет делать кнопка «Домой»)?Стоит ли сохранять некоторые контроллеры / представления как исходные в одноэлементной переменной для лучшего доступа и избежания проблем с памятью?

1 Ответ

4 голосов
/ 23 апреля 2011

Вы можете использовать popToRootViewControllerAnimated: для возврата к корню или popToViewController:animated: для возврата к произвольному предыдущему контроллеру представления. Вы также можете использовать setViewControllers:animated: для прямой установки всего стека контроллеров представления.

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

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