Проблемы со стеком UINavigationController с push и pop - PullRequest
1 голос
/ 09 октября 2011

Итак, у меня есть четыре контроллера вида, A, B, C, D, и они отображаются в таком порядке. Допустим, я нахожусь в представлении C и хочу перейти к просмотру D, поэтому я помещаю контроллер представления D в стек контроллера навигации, однако, что я хочу, так это то, что когда D пытается вернуться назад, он переходит непосредственно к просмотру контроллера B кл.

Есть ли конкретный способ добиться этого? Логический путь заключается в создании popViewController, а затем pushViewController: C. Я попробовал это, но ничего не вышло.

Ответы [ 3 ]

1 голос
/ 09 октября 2011

Вместо нажатия D вызовите -setViewControllers:animated: на вашем навигационном контроллере с массивом контроллеров вида, упорядоченных A, B и D.

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

Так что порядок A-> B-> C-> D не так ли?А из D, когда нажата кнопка «Назад», вы хотите перейти к B?Это означает, что нужно нажать D, а затем C, чтобы вернуться к B. Вот что делает popToViewController:animated:. Справочник по классам UINavigationController

popToViewController: animated:

Выводит контроллеры представления, пока указанный контроллер представления не окажется на вершине стека навигации.

Обратите внимание, что это отличается от popToRootViewControllerAnimated:

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

Вы можете использовать popToRootViewControllerAnimated:, если A находится внизу стека или popToViewControllerAnimated:, если оно где-то посередине.

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