2013-02-11 2 views
3

Я разрабатываю приложение, где я использую сторону меню двигающуюся как в приложении facebook: Screen Shot of app skeletonКак сохранить вид сверху настоящего приложения? Через разные контроллеры навигации?

Я хочу сохранить эту планку до верхней представить через из приложения и имеет UINavigationControllers получить местами и из это для разных разделов приложения для Item1 ... ItemN.

Как я могу это сделать?

+0

Что относительно UiSplitViewController? –

+0

Проблема заключается в том, как поменять местами разные виды, но держать верхнюю панель плавающей сверху. Панель инструментов, в которой указано «Меню». – Nirma

ответ

0

Я решил эту проблему с помощью контроллеров представлений ребенка на «центральной» точки зрения. Я просто сделал верхнее наиболее устойчивое меню подведомственным, которое находилось поверх представления контроллера детского представления.

+0

Этот подход противоречит шаблону проектирования для UIViewControllers. В частности, в любой момент времени должен быть только один единственный UIViewController. – averydev

2

Просто добавьте его в окно в AppDelegate:

[[[UIApplication sharedApplication] delegate].window addSubview:yourView]; 

Честно говоря, вы должны бросить делегат, который приходит от sharedApplication

+0

Не будет ли контроллер корневого представления и контроллеры последовательного представления блокировать его при их добавлении? – Nirma

+0

не должны, поскольку они находятся внутри контроллера корневого представления, добавленного в делегат приложения. – Ondrej

1

Я решаю это с помощью пользовательского контроллера контейнера. Мой rootViewController - это просто контроллер контейнера, который содержит мое меню и обычный контроллер. Это позволяет мне делать все, что я хочу, с помощью меню, но просто сдвиньте меню с экрана, и контроллер дочернего представления действует так, как будто он контролирует все.

«Реализация контроллера контейнера» - это раздел в файле UIViewController Class Reference и содержит некоторую полезную информацию о том, как выполнить задачу. Есть также много хороших видео от Apple на WWDC, когда они были представлены в ... 2011 году?

Редактировать: Добавлена ​​информация о пользовательских контроллерах представлений.

+0

Этот подход противоречит шаблону проектирования для UIViewControllers. В частности, в любой момент времени должен быть только один единственный UIViewController. http://stackoverflow.com/questions/5691226/am-i-abusing-uiviewcontroller-subclassing – averydev

+0

@AVeryDev - Разработчики, разработанные в режиме контроля сдерживания, были представлены как часть iOS 5. Контроллеры контроля сами по себе всегда были неотъемлемой частью дизайна шаблон, но до iOS 5 Apple не предоставила нам API для правильного внедрения наших собственных (мы должны были использовать те, которые они нам дали, панель вкладок, панель навигации, разделенное представление и т. д.). Я добавил дополнительную информацию в свой ответ, указывающий на документацию. – DBD

+1

Спасибо, что указали это! Я почему-то не наткнулся на это изменение. На самом деле я только что реализовал его в проекте, над которым я сейчас работаю. +1! При этом, имея несколько UIViewControllers, не настраивая их специально как контроллеры просмотра контейнеров, в комплекте с отношениями родитель-потомок всегда будет много проблем с отладкой. – averydev

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