Ios 導(dǎo)航控制器問題(三):修改導(dǎo)航欄返回按鈕的圖片

方案一:
  [UINavigationBar appearance].backIndicatorTransitionMaskImage = [UIImage imageNamed:@"backArrowMask.png"];
  [UINavigationBar appearance].backIndicatorImage = [UIImage imageNamed:@"icon_arrowback_n”];
// 這兩個屬性必須同時設(shè)置才能生效
方案二:
if (navigationController?.childViewControllers.count ?? 0) > 1 {
            navigationItem.leftBarButtonItem = UIBarButtonItem( image: UIImage(named: "ic_back_red"), 
                                                                style:.plain, 
                                                                target: self, 
                                                                action: #selector(backButtonPressed))
        }

方案二會導(dǎo)致手勢側(cè)滑返回失效,解決辦法如下:

class BaseNavgationController: UINavigationController, UIGestureRecognizerDelegate {
   
    override func viewDidLoad() {
        
        super.viewDidLoad()
        interactivePopGestureRecognizer?.delegate = self
    }
    
    // 自定義的cancelItem需要自己實現(xiàn)手勢返回
    func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
        
        if childViewControllers.count == 1 {
            
            return false
        }else {
            
            return true
        }
    }   
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容