Развертка до viewController в другом стеке навигации не работает

введите здесь описание изображения

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

Когда приложение запускается в первый раз, оно загружает первый контроллер представления сверху. Кнопка будет отображать меню модально, и в зависимости от того, какая кнопка нажата (я планирую добавить больше), будет показан соответствующий viewController. В ПЕРВЫЙ раз, когда нажимается VC2, он загружает второй viewController, но когда меню вызывается снова и нажимается VC2, я хочу, чтобы он раскручивался, а не перезагружал контроллер представления.

Мне удалось развернуться до первого viewController, но при попытке развернуться до второго viewController действие игнорируется. Ваша помощь будет принята с благодарностью. Спасибо.


person user3796209    schedule 24.08.2015    source источник


Ответы (1)


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

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

Для этого просто подключите свой VC меню в качестве контроллера корневого представления для UINavigationController, затем подключите кнопки меню к VC1 и VC2. После этого вы сможете легко перемещаться между тремя экранами (см., например, ниже).

введите здесь описание изображения

person Jason McDermott    schedule 16.12.2015