iOS 自定義返回按鈕保留系統(tǒng)滑動返回功能
先給大家展示下效果圖:
1.簡介
使用蘋果手機(jī),最喜歡的就是用它的滑動返回.作為一個開發(fā)者,我們在編寫很多頁面的時候,總是會因?yàn)檫@樣那樣的原因使得系統(tǒng)的滑動返回不可用.使用導(dǎo)航欄push出一個控制器,我們在控制器中自定義了一個返回按鈕.這樣系統(tǒng)默認(rèn)的滑動返回手勢效果就沒有了.
2.解決方法
[1]從A這個控制器push到B這個控制器,我們想要自定義B的返回按鈕,我們可以在A中設(shè)置
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"王儼" style:UIBarButtonItemStylePlain target:nil action:nil];
[2]在B控制器設(shè)置返回按鈕,我想這應(yīng)該是大多數(shù)人喜歡的選擇,可是當(dāng)我們在B控制器中設(shè)置self.navigationItem.leftBarButtonItem后發(fā)現(xiàn)系統(tǒng)的滑動返回手勢失效了.那么如何可以保留系統(tǒng)的滑動返回手勢了,我們可以B控制器中這樣做.
@interface ViewController () @end@implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 自定義返回按鈕 UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 44, 44)]; [button setTitle:@"王儼2" forState:UIControlStateNormal]; [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [button addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:button]; } - (void)back:(UIButton *)button { [self.navigationController popViewControllerAnimated:YES]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if (self.navigationController.viewControllers.count > 1) { // 記錄系統(tǒng)返回手勢的代理 _delegate = self.navigationController.interactivePopGestureRecognizer.delegate; // 設(shè)置系統(tǒng)返回手勢的代理為當(dāng)前控制器 self.navigationController.interactivePopGestureRecognizer.delegate = self; } } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; // 設(shè)置系統(tǒng)返回手勢的代理為我們剛進(jìn)入控制器的時候記錄的系統(tǒng)的返回手勢代理 self.navigationController.interactivePopGestureRecognizer.delegate = _delegate; }#pragma mark - UIGestureRecognizerDelegate- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { return self.navigationController.childViewControllers.count > 1; } - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return self.navigationController.viewControllers.count > 1; }@end
以上所述是小編給大家介紹的iOS 自定義返回按鈕保留系統(tǒng)滑動返回功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
詳解iOS多線程之2.NSThread的加鎖@synchronized
這篇文章主要介紹了詳解iOS多線程之2.NSThread的加鎖@synchronized,有需要的小伙伴可以參考下。2016-11-11設(shè)計(jì)模式中的Memento備忘錄模式的在iOS App開發(fā)中的運(yùn)用
這篇文章主要介紹了設(shè)計(jì)模式中的Memento備忘錄模式的在iOS App開發(fā)中的運(yùn)用,Memento著重于捕獲和具體化當(dāng)前對象的內(nèi)部狀態(tài),需要的朋友可以參考下2016-03-03詳解2016 cocoapods的安裝和使用以及版本升級遇到的問題
CocoaPods是一個負(fù)責(zé)管理iOS項(xiàng)目中第三方開源庫的工具。這篇文章主要介紹了2016 cocoapods的安裝和使用以及版本升級遇到的問題,有需要的可以了解一下。2016-12-12iOS11 SectionHeader 胡亂移動且滑動時出現(xiàn)重復(fù)內(nèi)容的解決方法
這篇文章主要介紹了iOS11 SectionHeader 胡亂移動且滑動時出現(xiàn)重復(fù)內(nèi)容的解決方法,需要的朋友可以參考下2017-11-11