天天看點

UINavigationController詳解(二)UINavigationBar(UIBarButtonItem)

@UINavigationBar-----(是一個View)基本介紹

1.導航欄,和導航控制器一樣,是一個容器用來顯示提供的其他對象的内容

2.導航欄顯示的内容,通過設定UINavigationItem展示,每個controller都有專屬的navigationItem

3.導航欄的高度:

    iPhone :     豎屏 44    橫屏  32

    iPad:          44

4.配置外觀:背景圖檔,背景顔色,style等等

   代碼樣例:

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
    self.navigationController.navigationBar.translucent = NO;
    self.navigationController.navigationBar.barTintColor = [UIColor orangeColor];
    self.navigationController.navigationBar.tintColor = [UIColor redColor];
    [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavBar_64"] forBarMetrics:UIBarMetricsDefault];
           
UINavigationController詳解(二)UINavigationBar(UIBarButtonItem)

@UINavigationItem------是一個NSObject(主要按鈕UIBarButtonItem)

1.提供navigationBar的顯示内容.導航欄是唯一的,每個controller都要設定

2.常用屬性:leftBarButtonItem(leftBarButtonItems 組合,用數組存),rightBarButtonItem,backBarButtonItem,title,titleView

3.UIBarButtonItem,navigationBar上顯示的按鈕,navigationItem上需要設定的,可以使用系統提供的

4.backBarButtonItem是上一級navigationItem控制的

5.@property(nonatomic,copy)   NSString *prompt;     // Explanatory text to display above the navigation bar buttons.

UINavigationController詳解(二)UINavigationBar(UIBarButtonItem)

@這裡重點介紹下@

UIBarButtonItem 是一個 UIBarItem,是一種專門放在bar上的特殊button,UIBarItem是一個NSObject

// 系統自帶的符号

1.UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(selectLeftAction:)];

UIBarButtonSystemItemAction的風格,這是系統自帶的按鈕風格,看下圖,你不用一個個試驗,你也知道想用那個item,如下圖:

UINavigationController詳解(二)UINavigationBar(UIBarButtonItem)

// 自定義文字---backBarButtonItem  右邊"Back"按鈕

2. self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"傳回" style:UIBarButtonItemStyleDone target:nil action:nil];

// 設定所有UINavigationBar上文本的屬性

NSDictionary *attributes =@{NSFontAttributeName: [UIFont fontWithName:@"Futura"size:18],

 NSForegroundColorAttributeName: [UIColor redColor]};

[[UINavigationBar appearance]setTitleTextAttributes:attributes];