навигационный контроллер должен быть установлен далее в навигации программно - PullRequest
0 голосов
/ 27 мая 2011

У меня есть навигационный контроллер, проходящий через 4 экрана / уровня, чтобы пользователи могли сделать свой выбор, затем они делают кучу вещей на других экранах, и когда я закончил, я установил их обратно на 4-й вид / экран / уровеньнавигационный контроллер.Легко до здесь ... НО кнопка возврата возвращает их к куче вещей (очевидно), а не к 3-му уровню, который я желаю!

Как это сделать, пожалуйста?Я действительно хотел бы избежать «перезаписи» кнопки «назад» и хотел бы более элегантный способ программно очень быстро спускаться вниз, чтобы все было правильно установлено

спасибо за вашу помощь

гиби

РЕДАКТИРОВАТЬ 1: Спасибо Джейсон, что нашли время, чтобы помочь мне - признателен.Дело в том, что я бы не знал, как поместить это утверждение в качестве логического места в обратном вызове функции «назад», которую мне нужно было бы создать, поскольку я ее не вижу, и это может испортитьобычная кнопка «назад», когда я выполняю детализацию естественным путем.

Что я действительно хочу сделать, так это сделать невидимым способом, так это вернуться на уровень 1 и программно спуститься до уровня 3 (так выглядиткак я вернулся 1 с 4 на 3 - точно так, как я хотел, где на самом деле я спустился на 1, 2, 3) - и затем, если пользователь продолжает хотеть вернуться, он просто естественным образом возвращается, потому что изначально я сверлял вниз нормально.

надеюсь, что я ясен

РЕДАКТИРОВАТЬ 2: вы правы, Джейсон.когда я делаю кучу других вещей, я больше не использую контроллеры представления - я полностью где-то в своем приложении, задаю несколько вопросов и получаю ответы на них несколько раз.Затем, в конце этих задач, мне нужно снова вернуться к моему последнему навигационному контроллеру, который был 4-го уровня, поэтому я просто запускаю его - и тогда у меня проблема с кнопкой возврата ... Я точно знаю, как я спустился сот уровня 1 до уровня 4 через синглтон-класс (действующий как глобальная переменная), поэтому я подумала, что мне следует незаметно позиционировать себя на уровне 1 и перейти к уровню 4, чтобы кнопка «Назад» работала так, как должна.Еще раз спасибо, что нашли время, когда я застрял.

1 Ответ

3 голосов
/ 27 мая 2011

Я думаю, что вы хотите, чтобы этот метод?

- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated

так что-то вроде

[self.navigationController popToViewController:thirdLevelViewController animated:YES]

РЕДАКТИРОВАТЬ: geebee, в вашем первоначальном вопросе "пройти через 4 экрана / уровня, такпользователи могут сделать свой выбор, , затем они делают кучу вещей на других экранах, а по окончании "

Не могли бы вы объяснить нам, что вы подразумеваете под этой строкой?Я думаю, это то, что сбивает с толку людей, пытающихся ответить на ваш вопрос прямо сейчас.Вы добавляете больше контроллеров представления в стек, выполняя эти другие действия?

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

EDIT2: geebee, я не совсем уверен, что понимаю, что происходит в вашем приложении, я не уверен, насколько больше я смогу помочьвы, если я не вижу некоторый код, который вы пытаетесь сделать с

...