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

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

作者: 青天揽明月 | 来源:发表于2017-04-08 15:50 被阅读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
            }
        }   
    }
    

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/skwlattx.html