收集iOS--UINavigationController的常用屬性

導(dǎo)航控制器 (UINavigationController )

高度:44

組成:UINavigationBar(上) ,NavigationView(中), Navigation toolbar(下) 組成

簡述:可以管理一系列顯示層次性信息的場景。 第一個場景顯示有關(guān)特定主題的高級視圖,第二個場景用于進(jìn)一步描述,第三個場景再進(jìn)一步描述。

過程 : 它會創(chuàng)建一個視圖控制器“?!?棧底是根視圖控制器。當(dāng)用戶在場景之間進(jìn)行切換時候,一次將視圖控制器壓入棧中,并且當(dāng)前場景的視圖控制器位于棧頂。要返回到上一級,導(dǎo)航控制器將彈出棧頂?shù)目刂破鳎瑥亩氐剿旅娴目刂破鳌?
術(shù)語: push (壓入) pop(彈出)來描述導(dǎo)航控制器

present          dismiss

modal 出來的控制器 是沒有導(dǎo)航欄的

-(void)buttonClick{  // 彈出窗口的兩種方式

#import "MIONavigationController.h" // 第一種要 導(dǎo)入頭文件

1. 有導(dǎo)航欄

MIONavigationController *nav =[[MIONavigationController alloc] initWithRootViewController:[[MIOSearchVC alloc]init]];

[self presentViewController:nav animated:YES completion:nil];

2. 沒有導(dǎo)航欄

MIOSearchVC *svc  = [[MIOSearchVC alloc]init];

[self.navigationController presentViewController:svc animated:YES completion:nil];

}
用戶輸入信息的view 結(jié)束后自動回復(fù)到之前的view  用 presentModalViewController 比較適合

NavigationBar ->  Navigationitem ->  (UIBarButtonItem)  leftBarButtonItem  (左邊)

rightBarButtonItem(右邊)

backBarButtonItem

3. 實(shí)例:創(chuàng)建一個導(dǎo)航項(xiàng)

UINavigationItem *navigationItem =[ [ UINavigationItem alloc] init]

4. 創(chuàng)建一個左邊的按鈕

UIBarButtonItem *rightItem = [[UIBarButtonItem alloc]initwithTitle:@“編輯” style:UIBarButtonItemStylePlain target:self action:@selector(beginEdit:)];

5. 設(shè)置導(dǎo)航欄內(nèi)容

navigationItem.title = “hello”;

把左邊按鈕添加到導(dǎo)航欄集合中

[navigationItem setLeftBarButtonItem : rightButton];

或者self.navigationItem.rightBarButtonItem = rightButton

titletextAttributes 可以設(shè)置title 部分字體

可以通過titleVIew 屬性 指定一個定制的titleview 指定的frame 不要顯示出界

Navigation toolbar(下)

顯示工具欄

self.navigationController.toolbarHidden = NO ;

■   UINavigationController的使用步驟

?   初始化UINavigationController

?   設(shè)置UIWindow的rootViewController為UINavigationController

■   根據(jù)具體情況,通過push方法添加對應(yīng)個數(shù)的子控制器

UINavigationController的子控制器

■   UINavigationController以棧的形式保存子控制器

@property(nonatomic,copy) NSArray *viewControllers;

@property(nonatomic,readonly) NSArray *childViewControllers;

■   使用push方法能將某個控制器壓入棧

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;

■   使用pop方法可以移除控制器

?   將棧頂?shù)目刂破饕瞥?
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;

?   回到指定的子控制器

- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;

?   回到根控制器(棧底控制器)

- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;

如何修改導(dǎo)航欄的內(nèi)容

■   導(dǎo)航欄的內(nèi)容由棧頂控制器的navigationItem屬性決定

■

■   UINavigationItem有以下屬性影響著導(dǎo)航欄的內(nèi)容

?   左上角的返回按鈕

@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;

?   中間的標(biāo)題視圖

@property(nonatomic,retain) UIView          *titleView;

?   中間的標(biāo)題文字

@property(nonatomic,copy)  NSString        *title;

?   左上角的視圖

@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;

?   UIBarButtonItem *rightBarButtonItem  右上角的視圖

@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;

應(yīng)用實(shí)例:

UINavigationController *nav =[[UINavigationController alloc] init];

//設(shè)置導(dǎo)航欄背景圖片

[ nav.navigationBar setBackgroundImage:[UIImage imageNamed:@“@"mine-setting-icon"”] forBarMetrics: UIBarMetricsDefault]

//設(shè)置導(dǎo)航欄內(nèi)容

self.navigationItem.title = @"我的";

//設(shè)置隨機(jī)背景色

self.view.backgroundColor =[UIColor colorWithRed:arc4random_uniform(100)/100.0 green:arc4random_uniform(100)/100.0 blue:arc4random_uniform(100)/100.0 alpha:1.0];

//(只設(shè)置一個的情況)

//設(shè)置導(dǎo)航欄右邊的按鈕

UIButton *settingButton =[UIButton buttonWithType:UIButtonTypeCustom];

[settingButton setBackgroundImage:[UIImage imageNamed:@"mine-setting-icon"] forState:UIControlStateNormal];

[settingButton setBackgroundImage:[UIImage imageNamed:@"mine-setting-icon-click"] forState:UIControlStateHighlighted];

settingButton.size = settingButton.currentBackgroundImage.size;

[settingButton addTarget:self action:@selector(settingClick) forControlEvents:UIControlEventTouchUpInside];

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:settingButton];

——————————————————————————————————————————————————————

//(設(shè)置兩個情況)

UIButton *settingButton =[UIButton buttonWithType:UIButtonTypeCustom];

[settingButton setBackgroundImage:[UIImage imageNamed:@"mine-setting-icon"] forState:UIControlStateNormal];

[settingButton setBackgroundImage:[UIImage imageNamed:@"mine-setting-icon-click"] forState:UIControlStateHighlighted];

settingButton.size = settingButton.currentBackgroundImage.size;

[settingButton addTarget:self action:@selector(settingClick) forControlEvents:UIControlEventTouchUpInside];

UIButton *settingButton2 =[UIButton buttonWithType:UIButtonTypeCustom];

[settingButton2 setBackgroundImage:[UIImage imageNamed:@"mine-setting-icon"] forState:UIControlStateNormal];

[settingButton2 setBackgroundImage:[UIImage imageNamed:@"mine-setting-icon-click"] forState:UIControlStateHighlighted];

settingButton2.size = settingButton2.currentBackgroundImage.size;

[settingButton2 addTarget:self action:@selector(setting2Click) forControlEvents:UIControlEventTouchUpInside];

self.navigationItem.rightBarButtonItems = @[

[UIBarButtonItem alloc]initWithCustomView:settingButton],

[UIBarButtonItem alloc]initWithCustomView:setting2Button]

];

——————————————————————————————————————————————————————

6. 隱藏導(dǎo)航欄

self.navigationController.navigationBar.hidden = YES;

self.navigationController.navigationBarHidden = YES;

[self.navigationController setNavigationBarHidden:YES animated:NO];

#import "UIBarButtonItem+MIOExtension.h"

7. 快速創(chuàng)建 按鈕

self.navigationItem.leftBarButtonItem = [UIBarButtonItem itemWithImage:@"MainTagSubIcon"highImage:@"MainTagSubIconClick" target:self action:@selector(tagClick)];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,996評論 25 709
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,219評論 4 61
  • 火車在群山峻嶺呼嘯而過,撕裂了黑夜的寂靜,猶如裂帛的碎裂和暢快??粗巴馄岷谝黄?,只有讓人無法呼吸的風(fēng)倒灌進(jìn)...
    木子甜閱讀 634評論 3 4
  • 墓園滿是遺失的春情 情詩住著回響的叮嚶 哀思窺視僅剩的偏心 冷塌角隅復(fù)得的自私
    一宇渡鴉閱讀 189評論 0 2
  • 李子香香閱讀 243評論 0 2

友情鏈接更多精彩內(nèi)容