Где я должен представить Modal View Controller?

У меня есть приложение с UITabBarController на верхнем уровне. Я отслеживаю, на какой вкладке находится пользователь, и сохраняю ее, чтобы при повторном открытии приложения они находились на той вкладке, на которой были, когда оно было закрыто. Таким образом, при запуске приложения нет вкладки по умолчанию.

У меня есть модальный экран, который отображается первым при каждом запуске приложения. Неважно, какая вкладка была сохранена, пользователю всегда предоставляется это представление.

Откуда должно быть представлено это модальное представление? Логично было бы, чтобы UITabBarController представлял его как rootViewController, но Apple не одобряет создание подкласса UITabBarController. Другой подход состоял бы в том, чтобы использовать UIViewController в качестве rootViewController, который будет обрабатывать презентацию, но Apple настаивает на том, чтобы UITabBarController был rootViewController.

Итак, как мне с этим справиться?


person Undistraction    schedule 10.05.2012    source источник
comment
Создайте функцию в одном общем классе, которая представляет желаемое модальное представление, а затем поместите ее в viewDidAppear корневых контроллеров представления для всех ваших вкладок. Надеюсь, ты понял. Дай мне знать, если тебе еще понадобится помощь. Спасибо   -  person Parth Bhatt    schedule 10.05.2012


Ответы (1)


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

person Mat    schedule 10.05.2012
comment
Это интересная идея. Итак, есть ли временный VC, который управляет представлением модального представления при запуске, а затем заменяет его на UItabBarController? Интересно, насколько плавным будет переключение. - person Undistraction; 10.05.2012
comment
Да, точно; я сделал это в нескольких приложениях для входа в систему. Вы можете добавить некоторую задержку/анимацию, чтобы добиться хорошего эффекта перехода. - person Mat; 10.05.2012