iOS-Swift-系統(tǒng)右滑返回

項(xiàng)目中很多頁面返回上一頁會(huì)有不同的處理方法,如需要返回到首頁,網(wǎng)頁返回上一頁等。

特別是橫屏右滑到豎屏的上一頁時(shí),橫豎屏切換的方式和右滑事件會(huì)產(chǎn)生沖突,導(dǎo)致右滑失敗(橫豎屏切換動(dòng)畫完后停留在橫屏頁面)。雖然后來解決了,但是一想還不如直接通過系統(tǒng)的右滑事件直接調(diào)用自定義的返回方法呢,當(dāng)然這樣會(huì)導(dǎo)致直接返回上一頁沒有右滑的動(dòng)畫效果,所有也可以做多一個(gè)判斷。

class BaseVC: UIViewController , UIGestureRecognizerDelegate {
    
    var isNeedPopVC: Bool = false             //頁面是否需要調(diào)用自定義返回方法

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        //開啟右滑返回
        navigationController?.interactivePopGestureRecognizer?.isEnabled = true
        navigationController?.interactivePopGestureRecognizer?.delegate = self
    }

    //MARK:-UIGestureRecognizerDelegate
    func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
        //非首頁調(diào)用自定義的返回方法
        if let number = navigationController?.viewControllers.count , number > 1 {
            if !isNeedPopVC { return true }
            
            //頁面重寫了返回方法,則直接調(diào)用重寫的返回方法
            popToVC()
        }
        return false
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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