Кнопка редактирования не отображается в MoreNavigationController UITabBarController

A UITabBarController выталкивается в стек:

let presenter = presentingViewController as! UINavigationController
let tabvc = UITabBarController()
tabvc.viewControllers = vcs
tabvc.customizableViewControllers = vcs
presenter.pushViewController(tabvc, animated: true)

после того, как представлена кнопка больше вкладок правильно показывает, но кнопка редактирования для перестановки вкладок не делает. Согласно документы на MoreNavigationController:

интерфейс для стандартного элемента More включает кнопку редактирования, которая позволяет пользователю перенастроить панель вкладок. По умолчанию пользователь разрешено переставлять все элементы на панели вкладок. Если не хочешь этот пользователь для изменения некоторых элементов, однако, можно удалить соответствующий вид контроллеры из массива в customizableViewControllers свойство.

Я предполагаю, что панель вкладок не счастлива быть в навигационном контроллере. Есть идеи по возвращению кнопки edit?

2 ответов


вы можете иметь как UINavigationController и a UITabBarController ; через Storyboard помогает лучше понять проблему, любое из этих решений будет работать:

  1. Начнем с UITabBarController as начальное представление-контроллер
  2. использовать presentViewController вместо pushViewController
  3. использовать модальные Storyboard segue для выполнения модальной презентации
  4. заменить на rootViewController динамически

Контроллер Начального Вида Дизайн

когда контроллер панели вкладок - это начальное представление-контроллер, the редактировать кнопка отображается нормально.

enter image description here


Толкнул Конструкция

Другой Навигационный Контроллер is контроллер начального вида, используя один из 5 адаптивные действие Segue:

  • показать
  • таможни

-> нет редактировать кнопка, так как она находится в прямом конфликте с родителем UITableViewController.

  • Показать Детали
  • Присутствует Модально
  • Презентация Popover

->редактировать кнопка отображается, как ожидалось.

enter image description here


код

1. Программа Modal

используя точный код, представленный в вопросе, измените последнюю строку:

let presenter = presentingViewController as! UINavigationController
let tabvc = UITabBarController()
tabvc.viewControllers = vcs
tabvc.customizableViewControllers = vcs
presenter.presentViewController(tabvc, animated: true, completion: nil)

2. Раскадровка Modal

соответствии с Storyboard тема, создайте сегмент правильного типа, назначьте идентификатор (т. е. presentModallySegue) и 5 строк выше стала такой один строка:

self.performSegueWithIdentifier("presentModallySegue", sender: self)

3. root Swap

более радикальные решение включает в себя замену контроллера корневого представления на


причина в том, что панель навигации вашего докладчика перекрывается с панелью навигации больше.

Если вы Не показывать панель навигации для вас навигационный контроллер, вы сможете видеть редактировать кнопка снова при нажатии на больше tab.