Кнопка панели навигации не отображается на панели навигации - PullRequest
1 голос
/ 17 апреля 2019

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

Вот моя форма кода AppDelegate:

    UINavigationBar.appearance().barTintColor        = APP_COLOR
    UINavigationBar.appearance().tintColor           = UIColor.white
    UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.font:Constants.APP_REGULAR_FONT_WITH_SIZE(size: 18), NSAttributedString.Key.foregroundColor : UIColor.white]

А вот код из моего viewController, где я пытаюсь добавить rightBarButton.

override func viewDidLoad()
{
    super.viewDidLoad()

    let rightBarButton = UIBarButtonItem(image: UIImage(named: "logout"), style: .plain, target: self, action: #selector(logoutButtonTapped))
    self.navigationController?.navigationItem.rightBarButtonItem = rightBarButton
}

Я также пытался удалить настройки внешнего вида, но кнопка не видна.

enter image description here

Ответы [ 3 ]

0 голосов
/ 18 апреля 2019

Не использовать self.navigationController? .Navi ... вместо этого используйте self.navigationItem.rightBarButton ...

override func viewDidLoad()
{
    super.viewDidLoad()

    let rightBarButton = UIBarButtonItem(image: UIImage(named: "logout"), style: .plain, target: self, action: #selector(logoutButtonTapped))
    self.navigationItem.rightBarButtonItem = rightBarButton
}

Надеюсь, что ваша проблема будет решена с помощью этого кода. Thankyou.

0 голосов
/ 18 апреля 2019
     let rightBarButton = UIBarButtonItem(image: UIImage(named: "test"), style: .plain, target: self, action: #selector(logoutButtonTapped))

    self.navigationController?.navigationBar.topItem?.rightBarButtonItem = rightBarButton

теперь это работает для меня

0 голосов
/ 17 апреля 2019

Вы можете удалить self.navigationController?. в своем коде.

override func viewDidLoad() {
    super.viewDidLoad()

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