Я использую UIViewController
для перечисления элементов в двух разных местах. Одно место является его домом по умолчанию, а другое — местом, где другой контроллер помещает его в стек навигации для просмотра списка элементов.
Оба места позволяют добавлять в него новые элементы, нажимая кнопку добавления на панели навигации. Поведение списка определяется на основе NSObject *
, называемого targetController
, который устанавливается вызывающей стороной на его ссылку self
, в противном случае это nil
по умолчанию.
Я столкнулся с проблемой, из-за которой, если бы они оба отображались одновременно на отдельных вкладках tabBar, панель навигации title
/rightBarButtonItem
исчезла бы на той, которая была вызвана первой. Я, наконец, понял, что navBar заменял стек items
всякий раз, когда представление списка было нажато, что приводило к удалению navigationItem
.
Мое единственное решение - заставить представление списка открываться всякий раз, когда нажимается элемент кнопки tabBar. Есть ли лучший способ?
Кстати, я решил использовать один и тот же контроллер в двух разных местах, чтобы избежать дублирования функций и, таким образом, поддерживать меньше кода.