Кнопка редактирования не отображается в 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
помогает лучше понять проблему, любое из этих решений будет работать:
- Начнем с
UITabBarController
as начальное представление-контроллер - использовать
presentViewController
вместоpushViewController
- использовать модальные
Storyboard
segue для выполнения модальной презентации - заменить на
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.