Кнопка редактирования не отображается в 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 помогает лучше понять проблему, любое из этих решений будет работать:
- Начнем с
UITabBarControlleras начальное представление-контроллер - использовать
presentViewControllerвместоpushViewController - использовать модальные
Storyboardsegue для выполнения модальной презентации - заменить на
rootViewControllerдинамически
Контроллер Начального Вида Дизайн
когда контроллер панели вкладок - это начальное представление-контроллер, the редактировать кнопка отображается нормально.
Толкнул Конструкция
Другой Навигационный Контроллер is контроллер начального вида, используя один из 5 адаптивные действие Segue:
- показать
- таможни
-> нет редактировать кнопка, так как она находится в прямом конфликте с родителем UITableViewController.
- Показать Детали
- Присутствует Модально
- Презентация Popover
->редактировать кнопка отображается, как ожидалось.
код
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.

