Как правильно переключаться между UIViewControllers без использования контроллера навигации или загрузки видов модально - PullRequest
0 голосов
/ 03 марта 2011

Я пытаюсь выполнить переключение видов без использования контроллера навигации, контроллера панели вкладок и т. Д. В настоящее время я выполняю это с помощью метода replaceScene класса директора Cocos2d.Моему приложению потребуется около 40 контроллеров представления, каждый с несколькими UIB-кнопками, которые могут перевести их на любой другой контроллер представления.

Например, в контроллере вида 1 могут быть кнопки, позволяющие просматривать контроллер 2. Вид контроллера 2могут иметь кнопки, которые ссылаются на 3, 4, 5, 12 контроллера просмотра 4, может потребоваться ссылка для просмотра контроллера 17, 5 и 3

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

В Cocos2d есть метод replaceScene, который делает именно то, что мне нужно, но смешивание многих необходимых мне элементов управления UIKit делает разработку всего этого проекта в Cocos2d кошмаром.

Я ищу что-то, чтобы пользователь мог нажать на кнопку, которая загрузит указанный контроллер представления / переход представления в это представление, и выгрузит предыдущий контроллер представления из памяти.Есть идеи?

1 Ответ

1 голос
/ 03 марта 2011

Имейте корневой контроллер представления, у которого есть ссылки ваших контроллеров представления. Также сделайте слабую ссылку на корневой контроллер представления в каждом контроллере представления, как в образце делегата. Если один из контроллеров представления хочет сделать переход представления, отправьте сообщение корневому контроллеру представления. Позвольте контроллеру корневого представления скрыть текущее представление и показать следующее представление, используя анимацию, если хотите.

По сути, вы реализуете контейнер представления намного проще, чем UINavigationController и UITabBarController. Возможно, вы могли бы добиться того же, используя контроллер панели вкладок и скрыв представление панели вкладок, но я бы реализовал пользовательский.

...