UINavigationController导航视图器
导航栏的视图器的定义:
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导航视图器相关推荐
- UI 07 _ 导航视图控制器 与 属性传值
首先, 先创建三个VC. 完毕点击按钮, 进入下一页, 并可以返回. 要先把导航视图控制器创建出来. 在AppDelegate.m 文件里代码例如以下: #import "AppDelega ...
- UINavigationController导航控制器详解
1.UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器,在iOS里经常用到. 我们看看它的如何使用: 下面的图显示了导航控 ...
- UINavigationController导航控制器(一)
导航控制器 UINavigationController 导航控制器,用来管理子控制器 其包含:UINavigationBar 导航条 管理原则:push进如导航控制器,为栈顶控制器,栈顶控制器的Vi ...
- UINavigationController 导航控制器
今天讲了导航控制器UINavigationController 和标签栏视图控制器UITabBarController 先来说一说导航视图控制器 UINavigationController 导航控 ...
- ipad UISplitViewController 导航视图控制器标题设置
描述:在使用UISplitViewController时 ,如何修改导航视图控制器的标题呢?如图 修改方法:在导航视图控制器 初始化时,设置导航视图控制器本身的title,比如:self.title ...
- Android开发笔记(一百三十三)导航视图NavigationView
导航视图NavigationView 很多App都有个人中心的侧滑菜单,通常在页面左侧边缘右拉时,即可弹出个人中心的菜单页面.对于Android来说,侧滑功能用到了抽屉布局DrawerLayout,我 ...
- SwiftUI嵌入Stack样式导航视图(NavigationView)中List显示怪异的解决
问题现象 在SwiftUI开发中,我们可以在List上应用各种显示样式.比如Sidebar样式对于包含Section的列表来说就尤为适合. 但是,如果将Sidebar样式的List嵌入到Stack样式 ...
- word2016打开导航——视图下导航窗格框上打勾
视图下显示那列导航窗格上✔
- 导航视图栏左右键自定义
//创建按钮初始化 UIButton * leftButton=[[UIButtonalloc]initWithFrame:CGRectMake(0, 0, 60, 24)]; //添加返回方法 ...
最新文章
- 理解VMware虚拟机下网络连接的三种模式
- Android Scroller用法
- python #!/usr/bin/python作用
- 5种最流行的AI编程语言
- Linux中如何打开trn文件,如何通过trn日志文件恢复SQL Server
- ai人工智能的数据服务_从AI数据集中消除无意识的偏见
- MFC和Direct3D9一起使用
- 读书_w3c架构师01通用设计与方法论
- 数据结构括号匹配代码_数据结构中的栈,你知道多少?
- 面向对象的关键技术(多态、接口、抽象)
- winpcap基本原理及常见应用_锁相放大器的基本原理(Part 1)
- 【肌电信号】肌电信号处理系统含Matlab源码
- 数据结构与算法面试题(2022版本)
- Redis中什么是Big Key(大key)问题?如何解决Big Key问题?
- 圣诞节桌面特效圣诞树程序(含运行效果和百度网盘直接运行程序分享)
- 什么是SEO?SEO的区别在哪里?
- [译] 海量视频时代下的内容发现之旅
- 第2关:Pandas创建透视表和交叉表
- 使用ffmpeg直播推流总结
- 电脑计算机怎么没有桌面显示器,电脑显示器没有全屏显示怎么解决