iOS自定義返回按鈕保留系統(tǒng)滑動返回功能

先給大家展示下效果圖:

創(chuàng)新互聯(lián)建站-專業(yè)網站定制、快速模板網站建設、高性價比沙縣網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式沙縣網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋沙縣地區(qū)。費用合理售后完善,十載實體公司更值得信賴。

iOS 自定義返回按鈕保留系統(tǒng)滑動返回功能

 1.簡介

使用蘋果手機,最喜歡的就是用它的滑動返回.作為一個開發(fā)者,我們在編寫很多頁面的時候,總是會因為這樣那樣的原因使得系統(tǒng)的滑動返回不可用.使用導航欄push出一個控制器,我們在控制器中自定義了一個返回按鈕.這樣系統(tǒng)默認的滑動返回手勢效果就沒有了.

2.解決方法

[1]從A這個控制器push到B這個控制器,我們想要自定義B的返回按鈕,我們可以在A中設置

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"王儼" style:UIBarButtonItemStylePlain target:nil action:nil]; 

[2]在B控制器設置返回按鈕,我想這應該是大多數人喜歡的選擇,可是當我們在B控制器中設置self.navigationItem.leftBarButtonItem后發(fā)現系統(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;     // 設置系統(tǒng)返回手勢的代理為當前控制器 
    self.navigationController.interactivePopGestureRecognizer.delegate = self; 
  } 
} 
- (void)viewWillDisappear:(BOOL)animated { 
  [super viewWillDisappear:animated];   // 設置系統(tǒng)返回手勢的代理為我們剛進入控制器的時候記錄的系統(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)滑動返回功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網站的支持!

分享標題:iOS自定義返回按鈕保留系統(tǒng)滑動返回功能
網址分享:http://muchs.cn/article18/jojedp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站策劃網站導航、響應式網站、商城網站、搜索引擎優(yōu)化、ChatGPT

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網站優(yōu)化排名