2015-10-20 1 views
0

У меня есть сценарий, как у меня есть много контроллеров просмотра с контроллером навигации, и этот контроллер навигации является корневым видом окна. Теперь независимо от того, какой диспетчер представлений отображается на экране, если я прокручу, тогда одно представление будет показано с некоторыми параметрами. Итак, какой должен быть подход к его развитию? Могу ли я сделать это, чтобы сделать контроллер навигации в виде корневого представления окна и добавить 1 вид в окно, а также добавить жест жестки в окно? Таким образом, когда салфетки останутся, будет отображаться вид, который добавляется в окно, и при нажатии любой опции мой новый контроллер будет нажат?Как добавить вид в окно, которое будет отображаться при просмотре каждого контроллера вида?

ответ

0

Я не уверен, что следую тому, что вы хотите, но давайте посмотрим, что я могу придумать. Для простоты вам нужно использовать раскадровки. Вы должны перетащить контроллер навигации с правой стороны. Вы должны выбрать этот контроллер и перейти в тег свойств, а в разделе «Контроллер просмотра» установлен флажок «Исходный контроллер просмотра». Выберите это, и ios автоматически сделает это в качестве контроллера корневого представления вашего окна. Отсюда вы должны сделать подкласс для контроллера навигации. Назовите это как «контроллер навигации приложения» или «главный навигационный контроллер» и переопределите «viewdidload». Поскольку это контроллер корневого представления, и вы никогда не планируете менять корень, это нужно только один раз вызвать «viewdidload». Из этой функции вы должны выделить 2 жесты салфетки. Один для правой и другой для левой.

Это должно позаботиться о том, чтобы установить контроллер навигации в качестве корня и настроить прокрутку влево и вправо. Теперь, если вы хотите просмотреть с помощью своего навигационного контроллера, вам нужно будет войти в раскадровку и добавить на экран объект View Controller. После этого щелкните правой кнопкой мыши на контроллере навигации и перетащите его поверх вновь созданного viewController. Выпуская кнопку мыши, вы должны всплывать, где вы можете выбрать «контроллер корневого представления», то есть корень контроллера навигации. Добавьте свои мнения здесь, где по вашим объяснениям звучит так, как будто вы хотите посмотреть таблицу.

С вашего вопроса довольно сложно определить, что именно вы собираетесь делать. Кажется, что вам нужен стандартный стек контроллеров просмотра, управляемый навигационным контроллером. С боковым меню. Если это так, вам придется либо использовать стороннюю библиотеку, потому что яблоко не предоставляет виджет бокового меню. Затем все усложняется, корень вашего приложения должен быть только одним контроллером представления с двумя видами контейнеров, а затем добавлять контроллеры представлений в эти контейнеры. Основной контейнер будет содержать описанный выше навигационный контроллер. Другой контейнер, например, боковое меню, будет удерживать контроллер вида с табличным представлением. В раскадровке вы просто вправо видите контейнер и перетаскиваете над/отпустите на нужном контроллере, а затем выберите опцию «контроллер просмотра». Вам нужно будет настроить автоматическую компоновку и оживить ограничения при прокрутке.

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

0

Добавить саблейный жест каждому VC, на который вы хотите, чтобы swipeVC появлялся, в вызове функции действия swipe presentViewController, который будет представлять контроллер вида вне навигационного стека.

Когда вы закончите работу с этим VC, вызовите presentingViewController.dismissViewController и подготовьтесь к segue, чтобы вернуться к представлению vc, получить контроллер навигации и попросить его представить следующий vc в стеке.

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