Ios 导航控制器问题(三):修改导航栏返回按钮的图片

2017-04-08  本文已影响0人  青天揽明月
方案一:
  [UINavigationBar appearance].backIndicatorTransitionMaskImage = [UIImage imageNamed:@"backArrowMask.png"];
  [UINavigationBar appearance].backIndicatorImage = [UIImage imageNamed:@"icon_arrowback_n”];
// 这两个属性必须同时设置才能生效
方案二:
if (navigationController?.childViewControllers.count ?? 0) > 1 {
            navigationItem.leftBarButtonItem = UIBarButtonItem( image: UIImage(named: "ic_back_red"), 
                                                                style:.plain, 
                                                                target: self, 
                                                                action: #selector(backButtonPressed))
        }

方案二会导致手势侧滑返回失效,解决办法如下:

class BaseNavgationController: UINavigationController, UIGestureRecognizerDelegate {
   
    override func viewDidLoad() {
        
        super.viewDidLoad()
        interactivePopGestureRecognizer?.delegate = self
    }
    
    // 自定义的cancelItem需要自己实现手势返回
    func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
        
        if childViewControllers.count == 1 {
            
            return false
        }else {
            
            return true
        }
    }   
}
上一篇下一篇

猜你喜欢

热点阅读