2016-12-20 5 views
0
let btnName = UIButton() 
    btnName.setImage(UIImage(named: "backIcon"), for: .normal) 
    btnName.addTarget(self, action: #selector(AddContactViewController.backAction), for: .touchUpInside) 
    let leftBarButton = UIBarButtonItem() 
    leftBarButton.customView = btnName 
    self.navigationItem.leftBarButtonItem = leftBarButton 

Он отлично работает, он делает то, что должен делать. Однако в навигационном элементе это невидимо. Но когда я нажимаю на область, где она должна быть. Оно работает.Пользовательский UIButton как элемент навигации Обратная кнопка работает, но не отображается

+0

check backIcon image есть в вашем проекте –

ответ

1

На самом деле у вас могут быть две навигационные панели, которые принадлежат вашему текущему классу, а другая - вашего предыдущего класса. Итак, вы можете попробовать, добавив ниже код в свой предыдущий класс.

override func viewWillDisappear(_ animated: Bool) { 
     self.navigationController!.navigationBar.isHidden = true 
} 

Я также столкнулся с той же проблемой, и это сработало для меня. Может быть, это поможет вам.

0

Все в порядке, за исключением того, что вы забыли установить рамку для своей кнопки, поэтому ее не показывают.

let btnName = UIButton(frame: CGRect(x: 0, y: 0, width: 18, height: 17)) 
btnName.setImage(UIImage(named: "backIcon"), for: .normal) 
btnName.addTarget(self, action: #selector(AddContactViewController.backAction), for: .touchUpInside) 

let leftBarButton = UIBarButtonItem() 
leftBarButton.customView = btnName 

self.navigationItem.leftBarButtonItem = leftBarButton 
Смежные вопросы