Постоянное свойство rightBarButtonItem объекта UINavigationItem.
-
03-07-2019 - |
Вопрос
Возможно, это глупый вопрос, но можно ли сохранить право UIBarButtonItem
в нескольких представлениях, управляемых UINavigationController
?У меня есть ряд взглядов, которые часто разделяют одно и то же право. UIBarButtonItem
, но когда я добавляю новое представление в свой UINavigationController
, мне приходится каждый раз переопределять кнопку, даже если она не изменилась.В основном меня беспокоит заметная анимация перехода от одного вида к другому, потому что одна и та же кнопка ненадолго исчезает, а затем снова появляется, что не нужно, поскольку реальных визуальных изменений нет.Должен ли я рассмотреть возможность просто добавления UIButton
как подвид моего UINavigationBar
и таким образом добиться эффекта «кнопки правой панели»?
Решение
Мы сделали это в нашем приложении.Мы создали один UIBarButtonItem, который мы переключаем с одного UIViewController на другой при навигации пользователя.Хитрость заключалась в использовании UINavigationControllerDelegate, NavigationController:willShowViewController:animated:метод.Мы устанавливаем для rightBarButtonItem исходящего UIViewController значение nil, а для rightBarButtonItem входящего контроллера — для вашей кнопки.Управлять этим сложно, но это работает.
Другие советы
UIBarButtonItems можно создавать как отдельные экземпляры в файле nib/xib.Если не происходит ничего особенного, что мешает вам создать кнопку в конструкторе интерфейсов, вам следует подключить ее к свойству rightBarButtonItem UINavigationItem для каждого контроллера представления, которому необходимо повторно использовать кнопку.Никакой цели c не требуется.