利用手勢(shì)全屏返回最終方案

上一篇分析了為什么自定義返回按鈕后,系統(tǒng)默認(rèn)的邊緣手勢(shì)返回會(huì)失效,以及解決的一些辦法,但是,這個(gè)手勢(shì)只是在邊緣有效,無法達(dá)到全屏有效,最理想的是全屏手勢(shì)有效,經(jīng)典的五步:


1.自定義滑動(dòng)手勢(shì)識(shí)別器,讓系統(tǒng)的私有類對(duì)象去調(diào)用系統(tǒng)提供的返回切換頁面功能

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self.interactivePopGestureRecognizer.delegate action:@selector(handleNavigationTransition:)];

2.加到導(dǎo)航控制器當(dāng)前的棧頂視圖上,可以理解為手勢(shì)識(shí)別器類似于一個(gè)膜貼到view上

[self.view addGestureRecognizer:pan];

3.設(shè)置pan手勢(shì)識(shí)別器的代理為當(dāng)前對(duì)象,用于實(shí)現(xiàn)代理方法,控制非控制器下才可以響應(yīng)滑動(dòng)返回

pan.delegate = self;

4.關(guān)閉邊緣手勢(shì)識(shí)別器

self.interactivePopGestureRecognizer.enabled = NO;

5.實(shí)現(xiàn)代理方法

#pragma mark -UIGestureRecognizerDelegate

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

{

return self.childViewControllers.count > 1;

}

最后編輯于
?著作權(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)容