2017-01-12 4 views
0

У меня есть контроллер табуляции, на котором есть 7 вкладок.Segue from Tab controller БОЛЬШЕ issue

Я нахожусь на странице под названием «Устройство». Кнопка «Назад» показывает «< Устройства»

Segue из любой из 4-х вкладок в поле зрения, а кнопка «Назад» указывает «< Устройство», что я и ожидал.

Если я однако, нажмите на вкладку «БОЛЬШЕ» и выберите вкладку там под названием «Управление», если она перейдет к другому виду, кнопка «Назад» все еще говорит «< Устройства», а заголовок страницы все еще говорит "Device".

Если я переупорядочу вкладки, чтобы «Управление» не было в БОЛЕЕ (это одно из 4 видимых), если я нажимаю на вкладку напрямую, она перемещается в представление, заголовок говорит «Управление», и на задней панели отображается «< Устройство», как и следовало ожидать.

Почему segue из меню tab controller меню MORE ведет себя по-разному к seque с видимой вкладки?

+0

Как вы выполняете segue? Просто в раскадровке? Или по коду? Обновите код или снимок экрана из раскадровки. Трудно сказать вам ответ, если мы не увидим код или вашу настройку. Возможной причиной может быть то, что вы используете тот же UINavigationController все контроллеры в TabBar. Более того, если я правильно понимаю, вы комбинируете UITabBarController с UINavigationController? Если это так, каждый контроллер, представляющий вкладку, должен иметь свой собственный навигационный VC. –

+0

Раскадровка очень большая. Я попытался выполнить сек в коде и раскадровкой. Результат тот же. Поведение, если панель навигации на контроллере дочернего представления отличается в зависимости от позиции вкладки. - вкладка расположена на панели вкладок, все в порядке. Если он находится в «БОЛЬШЕ», тогда панель навигации для детей отличается. Это похоже на то, что диспетчер представлений MORE нарушает представление дочернего представления из корректно вставленного в стек. – Mike

+0

Я пробовал контроллеры представления вкладок, как встроенные, так и не встроенные в свой собственный контроллер навигации. Это не имеет значения. Эта проблема связана с поведением функции MORE на панели управления. – Mike

ответ

0

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

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

Editor -> Вставить в -> UINavigationController

Если установка TabBarController -> ChildViewController [Each of these embedded in UINavigationController] он должен вести себя правильно

Но для описания установка, вероятно

UINavigationController -> UIViewController (title "Devices") -> UITabBarController -> ChildViewController

MORE вкладка специфична. См. tabbarController.moreNavigationController

Причина, по которой вы не видите свой заголовок на вкладке «Управление», заключается в том, что иерархия представления отличается. Как вы не упомянули, как вы настраиваете свой заголовок на navigationItem. есть две возможности.

Вызов ниже фрагмент кода в методе Управление VC viewDidAppear

self.tabBarController?.navigationItem.title 

Вы также можете обратиться на аналогичные вопросы о контроллере панели вкладок. Это в основном о не использовании его (ничего общего с MORE) Stackoverflow - Tab bar controller

Чтобы ответить на ваш вопрос - поведение отличается из-за разной иерархии представлений. Детский VC на вкладке «Дополнительно» встроен в UINavigationController соответственно в свойство UITabBarControllers moreNavigationViewController.

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