Swift.NavigationController.Условно изменить порядок дочерних viewControllers - PullRequest
0 голосов
/ 06 июня 2018

Если у меня есть раскадровка с навигационным контроллером с 2 дочерними viewControllers (vcA и vcB), где vcA установлен как корневой viewController navigationController, а переход от раскадровки соединяет vcA с vcB (vcA и vcB показывают альтернативные путипросмотра того же объекта).

Это разумный шаблон проектирования (и если да, то как бы я это сделал), чтобы изменить порядок дочерних viewControllers в стеке навигации, когда приложение запускается, в зависимости от предпочтений пользователей.Если пользователь предпочитает просматривать объект так, как он представлен в vcB, могу ли я каким-то образом переопределить порядок в раскадровке и сделать vcB корневым viewController для navigationController при запуске приложения.Так что, если пользовательские предпочтения - это «представление vcB», порядок navigationControllers - это navigationController -> vcB <-> vcA по сравнению с обычным, где порядок navigationController - это navigationController -> vcA <-> vcB.

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

Если это невозможно или не рекомендуется, каков рекомендуемый способ условно показать пользователям другой дочерний viewController navigationController при запуске приложения.

enter image description here

1 Ответ

0 голосов
/ 06 июня 2018

Вы должны быть в состоянии сделать это:

1) В дополнение к сегментам, показанным на вашем изображении, создайте еще один переход Push от navController к vcB и еще один Push sugue из vcA в vcB.

2) Используйте executeSegue (withIdentifier: "segue_name", sender: self) для условной загрузки vcA или vcB в начале.

3) Используйте executeSegue в vcA и vcB для перехода друг к другу на основетакие же условия.

...