Я пытаюсь создать пользовательскую кнопку для правой кнопки панели навигации. Но это всегда отсутствует. Это мой код, который был вызван с viewWillAppear:
:
func setNavBar() {
self.navigationController?.setNavigationBarHidden(false, animated: false)
let rightNavButton : UIBarButtonItem = UIBarButtonItem(image: UIImage(named: "photo_camera"), style: .plain, target: self, action: #selector(onCameraButton(sender:)))
self.navigationController?.navigationBar.topItem?.hidesBackButton = false
self.navigationController?.navigationBar.topItem?.rightBarButtonItem = rightNavButton
}
Показана кнопка «назад», поэтому topItem
определенно не ноль. Пока не знаю почему, но правая кнопка отсутствует. Я пытался создать массив только с одним элементом, но он все равно не работал. Кто-нибудь может мне помочь с этим? Благодарю.
РЕДАКТИРОВАТЬ: Кстати, контроллер представления, который имеет этот код, вызывается из другого, который имеет довольно похожий код, и он работает отлично. Не знаю, в чем разница между этими двумя. Вот рабочий код:
func setNavBar() {
self.navigationController?.setNavigationBarHidden(false, animated: false)
let rightNavButtons : [UIBarButtonItem] = [
UIBarButtonItem(image: UIImage(named: "edit"), style: .plain, target: self, action: #selector(onEditButton)),
UIBarButtonItem(image: UIImage(named: "settings"), style: .plain, target: self, action: #selector(onSettingsButton))
]
self.parent?.title = "Profile"
self.navigationController?.navigationBar.topItem?.hidesBackButton = true
self.navigationController?.navigationBar.topItem?.rightBarButtonItems = rightNavButtons
}