2014-02-19 2 views
2

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

Как смоделировать это в интерфейсе Builder? Я вытащил UINavigationController на мою раскадровку. Теперь мне нужно установить соединения с двумя контроллерами.

К сожалению, я могу установить только один контроллер корневого представления. Нужно ли мне подклассифицировать контроллер навигации и на основе сброса состояния контроллера корневого представления?

Какова наилучшая практика для такого рода проблем? Было бы неплохо визуализировать эти отношения в Interface Builder.

Заранее благодарим за любую помощь.

+0

Поскольку rootViewController вы хотите изменить условно, вы можете иметь два навигационных контроллера (каждый с разными корневыми контроллерами) и представить правильный (navigationController) на основе вашего условия. – JoeFryer

+0

Это будет хорошо, если вы реализуете это программно. С программным обеспечением настройки rootviewcontrollers. –

+0

У вас есть один контроллер представлений, встроенный в контроллер навигации. Исходя из некоторого состояния (которое?), Вы переходите к одному из двух возможных контроллеров. Как это действие сделано? Кнопка? – Moonwalkr

ответ

1

Имейте два segues (один для просмотра контроллераА и другого для просмотраконтроллера B). Контроллер навигации определит состояние приложения и вызовет функцию выполнения, чтобы переместить пользователя в правильный контроллер.

+1

Что касается контроллера корневого представления, мне не нужно устанавливать его для контроллера навигации? – kukudas

3

Как и rootViewController, вы хотите изменить условно, вместо этого вы могли бы иметь два разных контроллера навигации, каждый из которых с одним из двух разных диспетчеров viewController как его rootViewController.

Затем вы можете представить соответствующий навигационный контроллер в зависимости от вашего состояния.

Смежные вопросы