2017-02-04 30 views
-1

Я создал пользовательский UINavigationBar, используя ограничения. У меня возникли проблемы с добавлением к нему кнопки «Назад». Я мог бы просто создать UI Button и сложить его сверху, но я не хочу этого делать, если только не придется.Как добавить кнопку возврата к пользовательскому UINavigationBar

Вот соответствующий код.

let navBar: UINavigationBar = { 


    let myNav = UINavigationBar() 

    myNav.translatesAutoresizingMaskIntoConstraints = false 

    return myNav 

    }() 


func setUpNavBarView(){ 


self.navBar.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true 
self.navBar.topAnchor.constraint(equalTo: view.topAnchor as NSLayoutAnchor<NSLayoutYAxisAnchor>).isActive = true 
self.navBar.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true 
self.navBar.heightAnchor.constraint(equalToConstant: 60).isActive = true 

    self.navBar.barTintColor = UIColor.red 

    self.navBar.isTranslucent = false 


} 
+0

У вас есть предыдущий контроллер представления в навигационном контроллере? – MacStation

+0

Не знаю, думаешь ли ты, что это заставит его добавить кнопку «Назад», поскольку предыдущий viewController будет первым в стеке? –

+0

Я считаю, что, добавив предыдущий контроллер представления к контроллеру навигации, у него должна быть кнопка возврата по умолчанию на имя предыдущего контроллера представлений или Back if nil. – MacStation

ответ

0
lazy var backButton: UIBarButtonItem = { 
    let button = UIBarButtonItem(image: "Image", style: .plain, target: self, action: #selector(backButtonTapped)) 
    return button 
}() 

navigationItem.setLeftBarButton(backButton, animated: false) 

func backButtonTapped() { 
    //Do transition here 
} 
+0

do i put navigationItem.setLeftBarButton (backButton, анимированный: false) в viewDidLoad? –

+0

технически вы можете сделать это в любое время на жизненном цикле VC, но если вы хотите его там, когда появится представление, то да, viewDidLoad - хорошее место. – JustinM

+0

Я проверил ваш код, и ошибок не было, но кнопка не отображалась. Я помещаю тестовое изображение, где он говорит «Изображение». Я собираюсь немного поиграть с viewController –