欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

學習iOS自定義導航控制器UINavigationController

 更新時間:2016年09月30日 10:48:49   作者:vbirdbest  
這篇文章主要為大家詳細介紹了iOS自定義導航控制器UINavigationController,具有一定的參考價值,感興趣的小伙伴們可以參考一下

自定義導航控制器: 將導航控制器中通用的部分拿出來統(tǒng)一設置

1、一般導航條標題的字體setTitleTextAttribute和背景顏色setBackgroundImage都是統(tǒng)一的,可以在load方法中使用appearanceWhenContainedIn統(tǒng)一設置
2、一般導航條的返回按鈕需要自定義,一般除了棧底控制器有導航條,其他控制器都需要隱藏底部的條,可以重寫pushViewController:animated:方法,在該方法中實現(xiàn)該功能
3、導航控制器右滑返回效果(觸摸屏幕的任意一點,向右滑動返回)

UIViewController 
 --navigationItem 
   leftBarButtonItem | leftBarButtonItems
   NSString title | UIView titleView
   rightBarButtonItem | rightBarButtonItems
   backBarButtonItem

#import "BWNavigationController.h"
#import "UIBarButtonItem+Item.h"

@interface BaseNavigationController () <UIGestureRecognizerDelegate>

@end

@implementation BWNavigationController

+ (void)load {
  [super load];
  UINavigationBar *navigationBar = [UINavigationBar appearanceWhenContainedIn:self, nil];

  NSMutableDictionary *dict = [NSMutableDictionary dictionary];
  dict[NSFontAttributeName] = [UIFont boldSystemFontOfSize:20];
  [navigationBar setTitleTextAttributes:dict];

  [navigationBar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault];
}

- (void)viewDidLoad {
  [super viewDidLoad];
  // 屏幕邊緣滑動(只能在屏幕的邊緣才能觸發(fā)該手勢,不能在屏幕的任意一點觸發(fā)該手勢)
  UIScreenEdgePanGestureRecognizer *edgePanGestureRecognizer = (UIScreenEdgePanGestureRecognizer *)self.interactivePopGestureRecognizer;

  // 滑動手勢(禁用系統(tǒng)自帶的屏幕邊緣滑動手勢,使用自定義的滑動手勢目的就是達到觸摸屏幕上的任意一點向右滑動都能實現(xiàn)返回的效果)
  UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:edgePanGestureRecognizer.delegate action:@selector(handleNavigationTransition:)];
  panGestureRecognizer.delegate = self;
  [self.view addGestureRecognizer:panGestureRecognizer];

  // 禁用系統(tǒng)的屏幕邊緣滑動手勢
  edgePanGestureRecognizer.enabled = NO;
}

// 是否允許觸發(fā)手勢,如果是根視圖控制器則不需要
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
  return self.childViewControllers.count > 1;
}

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
  // 統(tǒng)一設置返回按鈕
  NSInteger count = self.childViewControllers.count;
  if (count > 0) {
    viewController.hidesBottomBarWhenPushed = YES;
    viewController.navigationItem.leftBarButtonItem = [UIBarButtonItem backBarButtonItemWithImage:[UIImage imageNamed:@"navigationButtonReturn"] highlightImage:[UIImage imageNamed:@"navigationButtonReturnClick"] tagert:self action:@selector(back) title:@"返回"];
  }

  [super pushViewController:viewController animated:animated];
}

- (void)back {
  [self popViewControllerAnimated:YES];
}
@end

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • iOS開發(fā)之在列表上方添加水印的方法

    iOS開發(fā)之在列表上方添加水印的方法

    這篇文章主要給大家介紹了關于iOS開發(fā)之在列表上方添加水印的相關資料,文中給出了詳細的示例代碼供需要的朋友們參考學習,對大家的學習或工作具有一定的參考借鑒價值,下面隨著小編來一起學習學習吧
    2018-08-08
  • iOS使用GCDSocketManager實現(xiàn)長連接的方法

    iOS使用GCDSocketManager實現(xiàn)長連接的方法

    下面想就為大家分享一篇iOS使用GCDSocketManager實現(xiàn)長連接的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • iOS開發(fā)WebViewJavascriptBridge通訊原理解析

    iOS開發(fā)WebViewJavascriptBridge通訊原理解析

    這篇文章主要為大家介紹了iOS開發(fā)WebViewJavascriptBridge通訊原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 詳解iOS Project和Targets配置

    詳解iOS Project和Targets配置

    本篇文章給大家分享了一篇關于在IOS中配置Project和Targets的相關文章,有這方面需要的朋友參考下吧。
    2018-01-01
  • Flutter列表滾動定位超強輔助庫使用示例詳解

    Flutter列表滾動定位超強輔助庫使用示例詳解

    這篇文章主要為大家介紹了Flutter列表滾動定位超強輔助庫使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • ios Plist文件配置方法

    ios Plist文件配置方法

    下面小編就為大家分享一篇ios Plist文件配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • iOS開發(fā)常用線程安全鎖

    iOS開發(fā)常用線程安全鎖

    這篇文章主要為大家介紹了iOS開發(fā)常用線程安全鎖示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • 圖文講解如何解決App的iOS 7頂部狀態(tài)欄適配問題

    圖文講解如何解決App的iOS 7頂部狀態(tài)欄適配問題

    至今很多iOS App還要照顧到iOS 7進行最低的版本適配,而iOS7開始status bar的實際屏幕占用情況與iOS 6等不盡相同,這里我們就來以圖文講解如何解決App的iOS 7頂部狀態(tài)欄適配問題
    2016-06-06
  • iOS基于UIScrollView實現(xiàn)滑動引導頁

    iOS基于UIScrollView實現(xiàn)滑動引導頁

    這篇文章主要為大家詳細介紹了iOS基于UIScrollView實現(xiàn)滑動引導頁的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • iOS開發(fā)中使用UIDynamic來捕捉動畫組件的重力行為

    iOS開發(fā)中使用UIDynamic來捕捉動畫組件的重力行為

    這篇文章主要介紹了iOS開發(fā)中使用UIDynamic來捕捉動畫組件的重力行為的方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-12-12

最新評論