自定義的導航欄如何增加右滑動返回的手勢
這幾天產品增加了個新需求,要求增加滑動返回的手勢。安卓上有返回按鈕,但是iOS上沒有返回按鈕,增加一個返回的手勢可以較大的提高使用者體驗。iOS7剛出來的時候系統增加了滑動返回手勢,感覺特別好,但是發現把導航欄隱藏,自定義的滑動返回手勢不好使。於是按照這個帖子(http://www.gowhich.com/blog/view/id/383)寫的如何開啟系統的滑動返回,並且如何避免出現的問題,結果發現不好使,在一級介面滑動,依然會出現畫面卡住的問題。
垃圾方案一:
後來找各種第三方,https://github.com/Coneboy-k/KKNavigationController,這個導航欄原理是截了張圖,放到記憶體裡,剛開始覺得挺好,後來出現了一些問題,如卡頓。而且頁面如果過多的話,記憶體肯定會增加不少。對於我這個完美主義者是不能接受的。
垃圾方案二:
下面完美的解決方案來了,不超過10行程式碼,以上所有問題全部解決。
直接在一級介面的viewWillAppear裡註冊delegate:
self.navigationController.interactivePopGestureRecognizer.delegate = self;
然後在一級介面的viewWillDisAppear裡登出delegate(此句一定要寫,否則會出其他bug):
self.navigationController.interactivePopGestureRecognizer.delegate = nil;
然後在該介面實現代理方法:
#pragma mark - UIGestureRecognizer Delegate - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { //判斷是否是一級檢視,若是則關閉滑動返回手勢 if (self.navigationController.viewControllers.count == 1) { return NO; } else { return YES; } }
然後萬事具備了。沒有出現上面帖子中的任何問題。
參考:
其他參考:QQ群:172158202,入群請註明求滑動返回的demo。
相關推薦
iOS-自定義導航欄後側滑返回功能失效
2016-03-17 iOS開發 文/煜寒了(簡書作者) 原文連結:http://www.jianshu.com/p/349636eb3fca iPhone有一個回退按鈕在所有的導航條上.這是一個簡單的沒有文字箭頭. 在一開始寫專案的時候,就要做好一個準備,導航欄是自定義還
iOS自定義導航欄,側滑返回卡死情況的解決辦法
側滑返回是iOS7新增的一個特性,如果自定義了導航欄,那麼側滑返回這個功能就會失效。雖然在自定義導航欄的viewDidLoad方法中新增self.interactivePopGestureRecognizer.delegate = (id)self;一行程式碼就
自定義的導航欄如何增加右滑動返回的手勢
這幾天產品增加了個新需求,要求增加滑動返回的手勢。安卓上有返回按鈕,但是iOS上沒有返回按鈕,增加一個返回的手勢可以較大的提高使用者體驗。iOS7剛出來的時候系統增加了滑動返回手勢,感覺特別好,但是發現把導航欄隱藏,自定義的滑動返回手勢不好使。於是按照這個帖子(http:/
iOS開發之自定義導航欄返回按鈕右滑返回手勢失效的解決---親測是有效的。
問題一:怎麼自定義leftItem問題二:為什麼系統自帶的右滑返回手勢失效問題三:怎麼解決這個失效問題3.怎麼解決這個失效問題 其實很簡單很簡單~只需要新增下面這一句程式碼即可self.navigationController.interactivePopGestureRe
iOS開發之自定義導航欄返回按鈕右滑返回手勢失效的解決
我相信針對每一個iOS開發者來說~除了根檢視控制器外~所有的介面通過導航欄push過去的介面都是可以通過右滑來返回上一個介面~其實~在很多應用和APP中~使用者已經習慣了這個功能~然而~作為開發者的我們~也並沒有為此做些什麼~因為我們在建立專案時~蘋果公司已經為我們都做好了~那麼~我們這期就來聊一聊這系統
iOS 自定義導航欄pop返回手勢,全屏右滑返回
- (void)viewDidLoad { [superviewDidLoad]; //重新給interactivePopGestureRecognizer.delegate掛代理
微信小程式自定義導航欄 navigation bar 返回鍵 首頁
微信小程式自定義導航欄(wx_custom_navigation_bar) 自定義返回鍵、首頁鍵,動態設定標題,響應式元件 版本號:1.0.0 作者:chen-yt github: https://github.com/chen-yt/wx_custom_navigation
自定義導航欄的返回鍵
UIImage *backButtonHomeImage = [[UIImage imageNamed:@"nav_back"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 30, 0, 0)];
Swift自定義導航欄返回按鈕
如何去除swift系統自帶的導航欄返回按鈕?可以自定義返回按鈕 在swift中,怎麼替換系統自帶的導航欄返回按鈕?比如說我要替換成一張返回按鈕圖片,點選返回到上一頁 首先,看一下系統自帶的導航欄返回按鈕的樣式 從上面我們可以看到,導航欄返回處左邊是
Swift- 自定義導航欄背景、標題和返回按鈕屬性
廢話少說,直接 看程式碼: //navigationBar的預設背景顏色 // UINavigationBar.appearance().tintColor = UIColor
IOS 開發筆記——自定義導航欄返回鍵後如何恢復系統預設返回手勢
在開發當中,我們不得不要將導航欄的左邊返回按鈕自定義成不同的樣式,但是一當我們自定義樣式後,系統預設的 pop 手勢就失效了,那麼我們該如何做呢?其實這個問題網上也有很多答案,但是每一個答案都非常坑,我都不得不吐槽一下了,老是將問題複雜化,不懂裝懂,最討厭這些
自定義導航欄返回按鈕點選事件
開發中經常會遇到 點選導航欄返回按鈕時不想 pop 回上一級控制器,而是回到 某一級控制器 或者需要在pop回去的時候回傳一些資料,但檢視文件發現,系統並沒有給我們直接提供這樣的方法。 那麼我們先來分析如何獲取返回按鈕的點選事件。 返回按鈕在導航欄上,所以我
微信小程式開發筆記2——自定義導航欄元件
本文主要是熟悉微信小程式自定義元件的開發,以一個常見的導航欄(Tabbar)需求為例。 官方文件:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/ 首先我們先看一
小程式自定義導航欄
將app.json裡的navigationStyle設定為navigationStyle:custom。可以在.wxss裡通過margin和padding來自定義導航欄。 例如在.wxml裡寫 <view class="nav">我是汽車維修技師</view>
CSS實現自定義導航欄帶二級選單
程式碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> &
IOS初學-自定義導航欄中的內容
對導航欄中進行簡單的自定義操作 新建一個FourSubViewController檢視控制器 self.title="FourPage" self.view.backgroundColor=UIColor.brown &nb
【小程式】自定義導航欄
這個需求要不是UI和我講有其他小程式實現了,我都還以為小程式還不能做到自定義導航。還好是在設計階段給出的需求,不然。。。 先看看效果吧 微信小程式自定義導航欄 開始接介紹用法: 1:配置app.json 掃碼都別管,先檢視文件window配置 然後在ap
ReactNative 自定義標題欄 ReactNative 自定義導航欄
/** * Created by 李卓原 on 2018/7/6. * email: [email protected] * */ import React from 'react'; import { Text, S
自定義導航欄按鈕UIBarButtonItem 文字或圖片
在4.0裡定義導航條按鈕通常是生成普通按鈕,再用它生成導航條專用按鈕。 [java] view plaincopyprint? UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]
45.自定義導航欄 UINavigationBar
1.改變導航欄風格 可以通過程式碼修改也可以通過 plist修改 @property(nonatomic,assign) UIBarStyle barStyle __TVOS_PROHIBITED; typedef NS_ENUM(NSInte