导航栏的视图器的定义:

1  导航视图器是管理视图的工具 所管理的这些视图 之间有明显的层次关系 它是以栈的方式来管理的先进后出型的

2  导航视图器是不可见的 可见的是导航条 navigationbar

3  在导航条上显示的按钮和标题 是navigationitem 它是以众多 左按钮 标题 和众多右按钮组成的

4  导航栏再添加 试图控制器的时候 有一个根试图控制器必须添加 这个根试图控制器必须添加 这个根试图控制器是第一个界面‘

//导航栏的颜色

UINavigationController

//self.navigationController.navigationBar.backgroundColor=[UIColor blueColor];

//导航栏的样式

//只要不设置导航栏的样式 ios7 之后 默认都是半透明的

/**

UIBarStyleDefault          = 0,

UIBarStyleBlack            = 1,

UIBarStyleBlackOpaque      = 1,  黑色

UIBarStyleBlack

UIBarStyleBlackTranslucent = 2,

*/

self.navigationController.navigationBar.barStyle=UIBarStyleBlack;

//3 是否透明 ios6之前 默认是NO(不透明 ) ios7 之后默认是YES 透明

self.navigationController.navigationBar.translucent=NO;

// Do any additional setup after loading the view.

/**

*状态栏的高度是20 导航栏的高度是 44 但是ios7之后是 设置导航栏的高度一般是64

将将导航栏的透明度置为不透明时 试图控制器 自带的视图 self.View 的farm 的x y 的值是(0 ,64) 导航条在透明的状态下 self.View 的fram 的x y的值是(0 , 0);

*/

//4 详情 设置详情之后导航条的高度会增加30

self.navigationItem.prompt=@"详情";

//5给导航条添加背景图

/**

UIBarMetricsDefault, 竖屏 这个才显示 导航栏的背景图

UIBarMetricsCompact, 横屏

UIBarMetricsDefaultPrompt

UIBarMetricsCompactPrompt,

UIBarMetricsLandscapePhone

UIBarMetricsLandscapePhonePrompt

*/

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"header_bg64"] forBarMetrics:UIBarMetricsDefault];

self.navigationItem.title=[NSString stringWithFormat:@"第%ld层",self.navigationController.viewControllers.count];

//添加左按钮

//action 后边添加参数的话 参数类型UIBarbuttonitem类型的

UIBarButtonItem * leftBBI=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemStop target:self action:@selector(leftBBIClick:)];

//添加一个按钮的方法

self.navigationItem.leftBarButtonItem=leftBBI;

//带标题的按钮

UIBarButtonItem*titleBBI=[[UIBarButtonItem alloc]initWithTitle:@"hello" style:UIBarButtonItemStylePlain target:self action:@selector(leftBBIClick:)];

//添加带图片的按钮

//给图片添加显然模式 若是图片只显示 图片状态 将图片显示成原始状态

//如果图片内容显示不出来 只显示轮廓 的话 需要给图片添加渲染[[UIImage imageNamed:@"图片名称+后缀"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]

UIBarButtonItem*imageBBI=[[UIBarButtonItem alloc]initWithImage:[[UIImage imageNamed:@"itemImage"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]style:UIBarButtonItemStylePlain target:self action:@selector(leftBBIClick:)];

//添加多个左按钮的方法 使用数组

// self.navigationItem.leftBarButtonItems=[NSArray arrayWithObjects:leftBBI,titleBBI,imageBBI,nil] ;

//自定义导航栏按钮 既带文字 有待图片

UIButton*leftButton=[UIButton buttonWithType:UIButtonTypeCustom];

leftButton.frame=CGRectMake(0, 0, 44, 44);

[leftButton setTitle:@"按钮" forState:UIControlStateNormal];

[leftButton setBackgroundImage:[UIImage imageNamed:@"itemImage2"] forState:UIControlStateNormal];

[leftButton addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];

//self.navigationItem.leftBarButtonItems=[NSArray arrayWithObjects:leftBBI,titleBBI,imageBBI,leftButton,nil] ;

UIBarButtonItem*customBBI=[[UIBarButtonItem alloc]initWithCustomView:leftButton];

// self.navigationItem.leftBarButtonItem=customBBI;

//添加右边的单个按钮

self.navigationItem.rightBarButtonItem=titleBBI;

//添加左边多个按钮

self.navigationItem.rightBarButtonItems=[NSArray arrayWithObjects:  customBBI, titleBBI,imageBBI, nil];

//镂空颜色

self.navigationController.navigationBar.tintColor=[UIColor redColor];

//设置标题

//1 设置控制器视图标题

self.title=@"试图控制器标题";

//2 设置导航item 标题 这个属性是导航条显示标题 若这个属性没有设置 默认显示试图控制器的标题

self.navigationItem.title=@"导航显示标题";

//没办法 只能修改字体大小和字体颜色  想要修改用到了自定义

UILabel*titileLabel=[[UILabel alloc]initWithFrame:CGRectMake(0, 10, 280, 44)];

titileLabel.text=@"自定义";

titileLabel.textColor=[UIColor blackColor];

titileLabel.font=[UIFont systemFontOfSize:12];

self.navigationItem.titleView=titileLabel;

}

//拿到保存界面的数组

//跳转到首页

[self.navigationController popToRootViewControllerAnimated:YES];

//    NSArray*viewControllers=self.navigationController.viewControllers;

//

//    //返回到指定位置

//    [self.navigationController popToViewController:viewControllers[1] animated:YES];

//隐藏导航条

// self.navigationController.navigationBarHidden=YES;

-(void)buttonClick:(UIButton*)button

{

//界面跳转

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

//到导航栏视图的界面的之间的跳转

[self.navigationController pushViewController:svc animated:YES];

//push之后 将Push的界面 直接压入到栈内

}

[self.navigationController popViewControllerAnimated:YES];

#pragma mark -----按钮点击事件-----

-(void)leftBBIClick:(UIBarButtonItem*)barbutton

{

}

UINavigationController导航视图器相关推荐

  1. UI 07 _ 导航视图控制器 与 属性传值

    首先, 先创建三个VC. 完毕点击按钮, 进入下一页, 并可以返回. 要先把导航视图控制器创建出来. 在AppDelegate.m 文件里代码例如以下: #import "AppDelega ...

  2. UINavigationController导航控制器详解

    1.UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在iOS里经常用到. 我们看看它的如何使用: 下面的图显示了导航控 ...

  3. UINavigationController导航控制器(一)

    导航控制器 UINavigationController 导航控制器,用来管理子控制器 其包含:UINavigationBar 导航条 管理原则:push进如导航控制器,为栈顶控制器,栈顶控制器的Vi ...

  4. UINavigationController 导航控制器

    今天讲了导航控制器UINavigationController 和标签栏视图控制器UITabBarController 先来说一说导航视图控制器  UINavigationController 导航控 ...

  5. ipad UISplitViewController 导航视图控制器标题设置

    描述:在使用UISplitViewController时 ,如何修改导航视图控制器的标题呢?如图 修改方法:在导航视图控制器 初始化时,设置导航视图控制器本身的title,比如:self.title ...

  6. Android开发笔记(一百三十三)导航视图NavigationView

    导航视图NavigationView 很多App都有个人中心的侧滑菜单,通常在页面左侧边缘右拉时,即可弹出个人中心的菜单页面.对于Android来说,侧滑功能用到了抽屉布局DrawerLayout,我 ...

  7. SwiftUI嵌入Stack样式导航视图(NavigationView)中List显示怪异的解决

    问题现象 在SwiftUI开发中,我们可以在List上应用各种显示样式.比如Sidebar样式对于包含Section的列表来说就尤为适合. 但是,如果将Sidebar样式的List嵌入到Stack样式 ...

  8. word2016打开导航——视图下导航窗格框上打勾

    视图下显示那列导航窗格上✔

  9. 导航视图栏左右键自定义

    //创建按钮初始化 UIButton * leftButton=[[UIButtonalloc]initWithFrame:CGRectMake(0, 0, 60, 24)]; //添加返回方法   ...

最新文章

  1. 理解VMware虚拟机下网络连接的三种模式
  2. Android Scroller用法
  3. python #!/usr/bin/python作用
  4. 5种最流行的AI编程语言
  5. Linux中如何打开trn文件,如何通过trn日志文件恢复SQL Server
  6. ai人工智能的数据服务_从AI数据集中消除无意识的偏见
  7. MFC和Direct3D9一起使用
  8. 读书_w3c架构师01通用设计与方法论
  9. 数据结构括号匹配代码_数据结构中的栈,你知道多少?
  10. 面向对象的关键技术(多态、接口、抽象)
  11. winpcap基本原理及常见应用_锁相放大器的基本原理(Part 1)
  12. 【肌电信号】肌电信号处理系统含Matlab源码
  13. 数据结构与算法面试题(2022版本)
  14. Redis中什么是Big Key(大key)问题?如何解决Big Key问题?
  15. 圣诞节桌面特效圣诞树程序(含运行效果和百度网盘直接运行程序分享)
  16. 什么是SEO?SEO的区别在哪里?
  17. [译] 海量视频时代下的内容发现之旅
  18. 第2关:Pandas创建透视表和交叉表
  19. 使用ffmpeg直播推流总结
  20. 电脑计算机怎么没有桌面显示器,电脑显示器没有全屏显示怎么解决

热门文章

  1. 百度网盘 倍速播放 插件 视频倍速播放(GreasyFork TemperMonkey油猴)
  2. kubernete部署安装(docker方式)
  3. MySQL局域网无法访问,只能本机访问
  4. Android中的sdk相关介绍
  5. html图片怎么预加载,如何利用CSS和Javascript实现图片预加载
  6. java 8 数组转字符串并以逗号分隔
  7. php显示固定页码,php显示页码分页类的封装
  8. Preference的使用(2) --- PreferenceCategory PreferenceScreen
  9. Qt实现关闭窗口触发事件
  10. 单播、广播和组播优缺点