iOS 自定義返回按鈕保留系統(tǒng)滑動(dòng)返回功能
先給大家展示下效果圖:

1.簡(jiǎn)介
使用蘋果手機(jī),最喜歡的就是用它的滑動(dòng)返回.作為一個(gè)開發(fā)者,我們?cè)诰帉懞芏囗撁娴臅r(shí)候,總是會(huì)因?yàn)檫@樣那樣的原因使得系統(tǒng)的滑動(dòng)返回不可用.使用導(dǎo)航欄push出一個(gè)控制器,我們?cè)诳刂破髦凶远x了一個(gè)返回按鈕.這樣系統(tǒng)默認(rèn)的滑動(dòng)返回手勢(shì)效果就沒有了.
2.解決方法
[1]從A這個(gè)控制器push到B這個(gè)控制器,我們想要自定義B的返回按鈕,我們可以在A中設(shè)置
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"王儼" style:UIBarButtonItemStylePlain target:nil action:nil];
[2]在B控制器設(shè)置返回按鈕,我想這應(yīng)該是大多數(shù)人喜歡的選擇,可是當(dāng)我們?cè)贐控制器中設(shè)置self.navigationItem.leftBarButtonItem后發(fā)現(xiàn)系統(tǒng)的滑動(dòng)返回手勢(shì)失效了.那么如何可以保留系統(tǒng)的滑動(dòng)返回手勢(shì)了,我們可以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)返回手勢(shì)的代理
_delegate = self.navigationController.interactivePopGestureRecognizer.delegate; // 設(shè)置系統(tǒng)返回手勢(shì)的代理為當(dāng)前控制器
self.navigationController.interactivePopGestureRecognizer.delegate = self;
}
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated]; // 設(shè)置系統(tǒng)返回手勢(shì)的代理為我們剛進(jìn)入控制器的時(shí)候記錄的系統(tǒng)的返回手勢(shì)代理
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)滑動(dòng)返回功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
IOS程序開發(fā)之禁止輸入表情符號(hào)實(shí)例代碼
如何禁止輸入表情符號(hào)呢?下面腳本之家小編給大家分享IOS程序開發(fā)之禁止輸入表情符號(hào)實(shí)例代碼,感興趣的朋友參考下吧2016-04-04
iOS實(shí)現(xiàn)對(duì)不同分辨率設(shè)備的字號(hào)大小適配方法
下面小編就為大家分享一篇iOS實(shí)現(xiàn)對(duì)不同分辨率設(shè)備的字號(hào)大小適配方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01
一個(gè)iOS上的秒表小應(yīng)用的實(shí)現(xiàn)方法分享
這篇文章主要介紹了一個(gè)iOS上的秒表小應(yīng)用的實(shí)現(xiàn)方法分享,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-10-10
iOS開發(fā)實(shí)現(xiàn)隨機(jī)圖片驗(yàn)證碼封裝
這篇文章主要介紹了iOS開發(fā)實(shí)現(xiàn)隨機(jī)圖片驗(yàn)證碼封裝,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
IOS 長(zhǎng)鏈接與短鏈接之間的轉(zhuǎn)換
這篇文章主要介紹了IOS 長(zhǎng)鏈接與短鏈接之間的轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2017-06-06
iOS將時(shí)間NSDate轉(zhuǎn)化為毫秒時(shí)間戳的方法示例
這篇文章主要給大家介紹了關(guān)于iOS將時(shí)間NSDate轉(zhuǎn)化為毫秒時(shí)間戳的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
IOS設(shè)置UIView的邊框?yàn)閳A角詳解及實(shí)例
這篇文章主要介紹了IOS設(shè)置UIView的邊框?yàn)閳A角的相關(guān)資料,需要的朋友可以參考下2017-03-03

