Использование View Controller для управления двумя другими View Controller - PullRequest
0 голосов
/ 22 февраля 2012

У меня есть offlineMapVC и onlineMapVC для моего приложения для поддержки как онлайн-карт (с помощью MapKit и Google Maps), так и офлайн-карт (с использованием Route-Me ).

Я сделал свой собственный mapVC для управления переключением этих mapVC и возможности использовать контроллер представления в качестве отдельного контроллера представления. Что ж, я сделал это, создав переменные экземпляра offlineMapVC и onlineMapVC для новой mapVC ведьмы, которую я теперь использую во всем приложении.

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

1 Ответ

2 голосов
/ 22 февраля 2012

Я сам помещаю контроллеры представления в контроллеры представления, и я видел гораздо лучших программистов, чем я, делающих то же самое.(См. Роб Нейпир «Программирование на iOS 5 - раздвигая границы». Он часто упоминает об этом.) Если у вас не более одного контроллера представления, непосредственно управляющего одними и теми же представлениями и подпредставлениями, вы должны с этим согласиться.

С тех пор, как Джона Уильямс написала эту статью, я думаю, что iOS 5 формализовала использование иерархии контроллеров представления с настраиваемыми контроллерами представления контента.Вы могли бы считать, что ваш mapVC является настраиваемым контроллером представления контента, и реализует onlineMapVC и offlineMapVC в качестве дочерних контроллеров представления.

(ссылки на документацию Apple, как правило, часто меняются, поэтому Google "Custom Content View Controller" для документации.)

Если вы можете дать больше контекста тому, что вы имеете в виду, переключаясь между двумяпросмотр контроллеров ", который помог бы ответить на ваш вопрос.Как правило, у меня одновременно работает несколько контроллеров представления.Я не переключаюсь между ними.(Я использую контроллеры навигации и панели вкладок в том же приложении, но я предполагаю, что вы знаете о том, как они работают, и задаете другой вопрос. Просто не ясно, каковы особенности в вашем случае.)

...