Custom back button in UINavigationController

前端 未结 10 1851
伪装坚强ぢ
伪装坚强ぢ 2020-12-28 16:59

For an application I\'m developing, I need to display a custom back button in a navigation bar. I have the button asset as a PNG image, and I\'m writing this code:



        
10条回答
  •  北荒
    北荒 (楼主)
    2020-12-28 17:39

    As @pgb suggested you can use leftBarButtonItem instead of back button item. And to remove the default back button item set it to nil like follows;

    navigationController?.navigationBar.backIndicatorImage = nil
    navigationController?.navigationBar.backIndicatorTransitionMaskImage = nil
    
    let button = UIButton.init(type: .custom)
    button.imageView?.contentMode = UIViewContentMode.scaleAspectFit
    button.setImage(UIImage.init(named: "top_back"), for: UIControlState.normal)
    button.frame = CGRect.init(x: 0, y: 0, width: 75, height: 50) 
    button.addTarget(self, action: #selector(handleBackButton), for: .touchUpInside)
    
    let barButton = UIBarButtonItem.init(customView: button)
    self.navigationItem.leftBarButtonItem = barButton
    

提交回复
热议问题