UINavigationBar из раскадровки без UINavigationController - PullRequest
0 голосов
/ 05 февраля 2020

Я использую раскадровку для стилизации представления. Это также может относиться к тому же с помощью Xib.

Я бы хотел использовать эту же раскадровку для стилизации панели навигации представления.

Раскадровка имеет , а не контроллер навигации, , и я не хочу добавлять его в раскадровку . Для представления этого вида будет использоваться существующий контроллер навигации.

Я перетащил панель UINavigationBar в раскадровку и присвоил ей пользовательский интерфейс в виде сегментированного элемента управления и элемента панели кнопок. Я также дал представлению верхнюю панель «Моделируемые метрики».


View + Navigation Bar in Storyboard


Когда я проверяю панель навигации, она не имеет поля «Storyboard ID». Поэтому я не могу использовать instantiateViewController(identifier: для инициализации этого представления.

Попытка назначить свойства nav также приводит к ошибкам:

  • Невозможно присвоить свойству: 'navigationItem' является свойством только для получения
  • Невозможно присвоить свойству: 'navigationController' является свойством только для получения

Как использовать this Панель навигации, как на раскадровке?

Я хотел бы создать навигационное представление на раскадровке и использовать это представление в качестве панели навигации.

Ответ, который я ищу, будет быть в основном основанным на раскадровке, используя только минимальный код, такой как IBOutlets или устанавливая свойство панели навигации.


Я знаю, что можно настроить панель навигации программно:

override func viewDidLoad() {
    super.viewDidLoad()

    navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addButtonTapped(_:)))
}

Но есть ли способ вместо этого использовать всю панель навигации, как указано на раскадровке?

...