1. 程式人生 > >iOS開發之自定義導航欄返回按鈕右滑返回手勢失效的解決---親測是有效的。

iOS開發之自定義導航欄返回按鈕右滑返回手勢失效的解決---親測是有效的。

  • 問題一:怎麼自定義leftItem
  • 問題二:為什麼系統自帶的右滑返回手勢失效
  • 問題三:怎麼解決這個失效問題

3.怎麼解決這個失效問題
其實很簡單很簡單~只需要新增下面這一句程式碼即可
self.navigationController.interactivePopGestureRecognizer.delegate = (id)self;

其實到這裡~問題應該都解決了~但是~畢竟右滑返回手勢只能靠近螢幕左邊緣才能使用~我們如何通過呼叫系統方法來實現在整個螢幕右滑就可以實現返回功能呢~
setp1:需要獲取系統自帶滑動手勢的target物件
id target = self.navigationController.interactivePopGestureRecognizer.delegate;


setp2:建立全屏滑動手勢~呼叫系統自帶滑動手勢的target的action方法
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:target action:@selector(handleNavigationTransition:)];
step3:設定手勢代理~攔截手勢觸發
pan.delegate = self;
step4:別忘了~給導航控制器的view新增全屏滑動手勢
[self.view addGestureRecognizer:pan];
step5:將系統自帶的滑動手勢禁用
self.navigationController.interactivePopGestureRecognizer.enabled = NO;

steo6:還記得剛剛設定的代理嗎?下面方法什麼時候呼叫?在每次觸發手勢之前都會詢問下代理,是否觸發。
這個方法就是攔截手勢觸發的方法.
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{}
return NO;則不需要觸發滑動手勢
return YES;則需要觸發滑動手勢

好啦好啦~差不多了~更多內容關注笨笨程式設計官方微博~笨笨程式設計部落格園~這裡有你將會更加精彩~



相關推薦

iOS開發定義導航返回按鈕返回手勢失效解決---有效

問題一:怎麼自定義leftItem問題二:為什麼系統自帶的右滑返回手勢失效問題三:怎麼解決這個失效問題3.怎麼解決這個失效問題 其實很簡單很簡單~只需要新增下面這一句程式碼即可self.navigationController.interactivePopGestureRe

iOS開發定義導航返回按鈕返回手勢失效解決

我相信針對每一個iOS開發者來說~除了根檢視控制器外~所有的介面通過導航欄push過去的介面都是可以通過右滑來返回上一個介面~其實~在很多應用和APP中~使用者已經習慣了這個功能~然而~作為開發者的我們~也並沒有為此做些什麼~因為我們在建立專案時~蘋果公司已經為我們都做好了~那麼~我們這期就來聊一聊這系統

IOS 開發筆記——定義導航返回鍵後如何恢復系統預設返回手勢

       在開發當中,我們不得不要將導航欄的左邊返回按鈕自定義成不同的樣式,但是一當我們自定義樣式後,系統預設的 pop 手勢就失效了,那麼我們該如何做呢?其實這個問題網上也有很多答案,但是每一個答案都非常坑,我都不得不吐槽一下了,老是將問題複雜化,不懂裝懂,最討厭這些

ios開發ios7定義導航模擬器和真機執行介面座標不一致

做了一個簡單的自定義導航欄,也就正常的設定了返回按鈕圖片和導航背景圖片,結果在真機上執行的時候突然發現介面的空間向下移了,列印了一下y座標,移動了64,又列印了一下self.view的y座標,盡然也向下移動了64,但是

iOS開發定義圓環式Slider

#pragma mark - UIControl functions //開始跟蹤觸控 -(BOOL) beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event { [super beginTrackingWithTouch:

iOS開發定義鍵盤(數字,字母型別等隨意切換)

專案開發很多時候用系統給的鍵盤不是很滿足自身實際需求,那就自定義一個吧: 方法其實很簡單,重新定義一個view,繼承UItextfield,把UI設計好的需求鍵盤加入新的otherKeyboardView,然後執行程式碼:  self.inputView =self.oth

iOS開發定義載入等待框(MBProgressHUD)

原文地址:http://blog.csdn.net/ryantang03/article/details/7877120 MBProgressHUD是一個開源專案,實現了很多種樣式的提示框,使用上簡單、方便,並且可以對顯示的內容進行自定義,功能很強大,很多專案中都有

iOS開發定義手勢

iOS為手指觸碰事件提供了手勢處理器,通過手勢處理器可使用一致的變成模式來處理各種觸碰事件,而且變成更加簡單,因此一般推薦使用者使用手勢來處理使用者的觸碰事件。無論處理哪種手勢,都可面向UIGestureRecognizer程式設計,UIGestureRecognizer提

Swift- 定義導航背景、標題和返回按鈕屬性

廢話少說,直接 看程式碼: //navigationBar的預設背景顏色 // UINavigationBar.appearance().tintColor = UIColor

iOS開發定義TabBarController-present(模態)出控制器

如上圖這種點選TabBar中間Button時present(模態)出控制器,而點選TabBar其它的Button則是蘋果預設的直接切換檢視的方式,現在很多APP都在使用,特別是直播APP,基本都把直播端模組放在這,最近在仿喵播時正好做到這,就想在網上找

iOS開發定義ActionSheet檢視

有時我們需要用到actionSheet來展示,但是但是往往系統的介面顯示很醜或者並不符合UI的要求,所以在這裡自定義一個,方便以後使用,後續有時間寫一下Swift的開發。自定義ActionSheet的關鍵點,就是UI的樣式修改和設計調整,還有就是點選單元格時進行的後續操作,再

IOS開發定義UIActionSheet

IOS開發中,經常會用到UIActionSheet,但是,預設的只能新增按鈕。如果能自定義的話,豈不是更好?上網搜了一下,都是隻有那一種程式碼,通過設定幾個按鈕來增加UIActionSheet的高度,不是很準確。今天研究了一下,然後做了一個可以自定義高度和控制元件的通用U

IOS開發定義鍵盤

實際開發過程中,會有自定義鍵盤的需求,比如,需要新增一個表情鍵盤。本文提供一種解決方法,思路就是通過獲取系統鍵盤所在的view,然後自定義一個view覆蓋在系統鍵盤view上,接下來的事情就非常簡單了,就是在自定義的view裡做任何自己想做的事情。 這個方法的關鍵在於獲

iOS-定義導航後側返回功能失效

2016-03-17 iOS開發 文/煜寒了(簡書作者) 原文連結:http://www.jianshu.com/p/349636eb3fca iPhone有一個回退按鈕在所有的導航條上.這是一個簡單的沒有文字箭頭. 在一開始寫專案的時候,就要做好一個準備,導航欄是自定義還

iOS 定義導航pop返回手勢,全屏返回

- (void)viewDidLoad {     [superviewDidLoad]; //重新給interactivePopGestureRecognizer.delegate掛代理

iOS定義導航,側返回卡死情況的解決辦法

側滑返回是iOS7新增的一個特性,如果自定義了導航欄,那麼側滑返回這個功能就會失效。雖然在自定義導航欄的viewDidLoad方法中新增self.interactivePopGestureRecognizer.delegate = (id)self;一行程式碼就

微信小程式開發筆記2——定義導航元件

本文主要是熟悉微信小程式自定義元件的開發,以一個常見的導航欄(Tabbar)需求為例。 官方文件:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/ 首先我們先看一

微信小程式定義導航 navigation bar 返回鍵 首頁

微信小程式自定義導航欄(wx_custom_navigation_bar) 自定義返回鍵、首頁鍵,動態設定標題,響應式元件 版本號:1.0.0 作者:chen-yt github: https://github.com/chen-yt/wx_custom_navigation

IOS初學-定義導航中的內容

對導航欄中進行簡單的自定義操作 新建一個FourSubViewController檢視控制器 self.title="FourPage"         self.view.backgroundColor=UIColor.brown &nb

iOS定義導航按鈕UIBarButtonItem的樣式

在一個APP中導航的重要性和方便性自然不需要多說了,由於系統的導航用起來實在不怎麼友好,一直想抽個時間把導航學習下 由於投入到工作的時間多些,懶懶散散的一直都是用的時候才去找度娘,一直沒來個總結,前段時間在群裡和別人討論的 時候我說自定義導航不就是隱藏系統的,自己新增一個U