UINavigationController
2016-02-03 16:04
183 查看
因为对导航栏和工具栏还是有很多的误区。所有就参照官方文档写点知识点当作学习笔记,英语渣,所以可能有很多理解的错误。 先将就吧.....。慢慢写一点点进步吧!
UINavigationController
苹果官方给出的导航栏控制器的组成内容。
ViewControllers中包含的是已经通过push显示出来的viewController。导航控制器对这些viewcontroller是以堆栈的模式进行管理。即FILO(First In Last Out)。在pop的时候都是移除栈顶的view controller(最后显示的controller开始)。可以通过访问navigation controller的childviewcontrollers 属性访问有几个view controller。
UINavigationbar:顶部导航栏。主要用来设置顶部栏的颜色和左、中、右Item的样式。这在后面会作详细的解释。
UIToolBar: NavigationController会管理Toolbar(与后面的Tabbar不要搞混了)。工具栏?因为之前并没有在UInavigationcontroller有使用到toolbar。可以使用setToolbarHidden:方法显示在底部的工具栏。用的不是很多。所以没打算深入。想看的请戳
Delegate: 还有就是可以做自定义转场动画的代理。很多的自定义的转场动画都与这个代理的方法有密切的关系。有兴趣的可以在文档上看看
从官方文档再扒张图来看下UINavigationController的views有哪些:
UINavigationController算是一种view controller的容器,它将其他的控制器嵌入到自己里面。UINavigationController的view中包含了navigation bar、一个可选的ToolBar和child controllers中最顶层的控制器的view。(上图还进一步将navigation
controller 添加到了UITabBarController里面)。很多时候只有中间contentView即子控制器中的view才会发生变化。其他的一般都不会做改变。
Ps:还有一点在对view进行布局时要注意的是。点的坐标在iOS7之后(0,0)点是从导航栏的左下角开始的。而在此之前这是从顶部左上角开始。(这个大家应该都知道......)。
UINavigationBar
即是app上面的导航栏。当每次的push、pop(前面图中显示的navigation stack的顶部发生变化)时。都会对UINavigationBar进行相应的刷新。主要是对 bar的三个位置的内容进行刷新。即left、middle、还有right。
对导航栏的整体颜色调整可以通过NavigationBar的APIs的
设置成自己想要的效果。而使用barTinColor则会改变left、middle、right等item的渲染颜色。
UINavigationItem
主要属性包括下面三种item
UINavigationItem用来管理显示在
上面的按钮和视图对象。每个在导航控制器中Navigation stack 中的ViewController都有UINavigationItem一个对象。我们可以通过访问viewcontroller中的navigationItem来改变在navigationBar上显示的控件、
Left:
当前的viewcontroller通过使用
如果没有使用第一种的方式进行设置,但是之前的viewcontroller设置了backBarButtonItem属性,则会使用backBarButtonItem进行显示。
如果什么都没有指定。则会显示系统的返回规格会带上前一个界面的title。(如果是根控制器的话。则什么都不会显示)
ps:如果title太长的话。则系统会自动替换成“Back”
Middle:
如果自定义了Middle的
你也可以设置
属性来显示titleview上面显示的文字。记住如果设置了titleview则title会被忽略。
Right:
如果自定义了Middle的
如果没有使用1的方法自定义rightBarButtonItem。那么右边就什么都不显示。不管viewcontroller是不是root控制器。简单粗暴。
UIBarButtonItem:
继承于抽象父类UIBarItem,在UIToolBar和UINavigationBar一般添加按钮时是无效的,一般都是使用UIBarButtonItem来进行需要响应事件控件的创建。UIBarButtonItem提供了自定义的方法和使用系统定义。可以根据需要使用。
UINavigationController
苹果官方给出的导航栏控制器的组成内容。
ViewControllers中包含的是已经通过push显示出来的viewController。导航控制器对这些viewcontroller是以堆栈的模式进行管理。即FILO(First In Last Out)。在pop的时候都是移除栈顶的view controller(最后显示的controller开始)。可以通过访问navigation controller的childviewcontrollers 属性访问有几个view controller。
UINavigationbar:顶部导航栏。主要用来设置顶部栏的颜色和左、中、右Item的样式。这在后面会作详细的解释。
UIToolBar: NavigationController会管理Toolbar(与后面的Tabbar不要搞混了)。工具栏?因为之前并没有在UInavigationcontroller有使用到toolbar。可以使用setToolbarHidden:方法显示在底部的工具栏。用的不是很多。所以没打算深入。想看的请戳
UIToolbar。
Delegate: 还有就是可以做自定义转场动画的代理。很多的自定义的转场动画都与这个代理的方法有密切的关系。有兴趣的可以在文档上看看
从官方文档再扒张图来看下UINavigationController的views有哪些:
UINavigationController算是一种view controller的容器,它将其他的控制器嵌入到自己里面。UINavigationController的view中包含了navigation bar、一个可选的ToolBar和child controllers中最顶层的控制器的view。(上图还进一步将navigation
controller 添加到了UITabBarController里面)。很多时候只有中间contentView即子控制器中的view才会发生变化。其他的一般都不会做改变。
Ps:还有一点在对view进行布局时要注意的是。点的坐标在iOS7之后(0,0)点是从导航栏的左下角开始的。而在此之前这是从顶部左上角开始。(这个大家应该都知道......)。
UINavigationBar
即是app上面的导航栏。当每次的push、pop(前面图中显示的navigation stack的顶部发生变化)时。都会对UINavigationBar进行相应的刷新。主要是对 bar的三个位置的内容进行刷新。即left、middle、还有right。
对导航栏的整体颜色调整可以通过NavigationBar的APIs的
BarTintColor进行着色
[[UINavigationBar appearance] setBarTintColor:myNavBarBackgroundColor];
设置成自己想要的效果。而使用barTinColor则会改变left、middle、right等item的渲染颜色。
UINavigationItem
主要属性包括下面三种item
UINavigationItem用来管理显示在
UINavigationBar
上面的按钮和视图对象。每个在导航控制器中Navigation stack 中的ViewController都有UINavigationItem一个对象。我们可以通过访问viewcontroller中的navigationItem来改变在navigationBar上显示的控件、
Left:
当前的viewcontroller通过使用
leftBarButtonItem自定义左边的显示样式。
如果没有使用第一种的方式进行设置,但是之前的viewcontroller设置了backBarButtonItem属性,则会使用backBarButtonItem进行显示。
如果什么都没有指定。则会显示系统的返回规格会带上前一个界面的title。(如果是根控制器的话。则什么都不会显示)
ps:如果title太长的话。则系统会自动替换成“Back”
Middle:
如果自定义了Middle的
titleView。系统则会替换系统默认的title view。
你也可以设置
title
属性来显示titleview上面显示的文字。记住如果设置了titleview则title会被忽略。
Right:
如果自定义了Middle的
rightBarButtonItem,
系统则会显示自定义的rightItem。
如果没有使用1的方法自定义rightBarButtonItem。那么右边就什么都不显示。不管viewcontroller是不是root控制器。简单粗暴。
UIBarButtonItem:
UIBarButtonItem
继承于抽象父类UIBarItem,在UIToolBar和UINavigationBar一般添加按钮时是无效的,一般都是使用UIBarButtonItem来进行需要响应事件控件的创建。UIBarButtonItem提供了自定义的方法和使用系统定义。可以根据需要使用。
相关文章推荐
- uCGUI 按键窗口切换机制
- UNIX高级编程缺少APUE头文件
- Dump view UI hierarchy for Automator
- iOS中xcode的调试技巧(打印UI层次、po)
- (2)基本工作流(制作场景与UI)
- BZOJ 4321: queue2|动态规划
- android系统源码学习 -- 蓝牙 bluetooth (一) 入门
- org.hibernate.QueryException: could not resolve property:xxxxxid 外键查询 hibernate
- Android 动画 ValueAnimator(二)
- NGUI中实现数字逐步增加
- 新浪微博UWP UI意见征求
- Guest can reach outside network, but cannot reach host when using macvtap interface
- Wunder Fund Round 2016 (Div. 1 + Div. 2 combined) B. Guess the Permutation 水题
- IOS8以上版本,使用UIAlertController代替 UIActionSheet和UIAlertView
- 使用Excel PowerQuery和PowerPivot分析Dynamics CRM数据
- BZOJ 1570: [JSOI2008]Blue Mary的旅行( 二分答案 + 最大流 )
- Android 动画 ValueAnimator(一)
- JMS入门(三)--Queue的使用
- UIGraphicsBeginImageContext和UIGraphicsBeginImageContextWithOptions实现iOS中的截图功能
- UIScrollView 使用AutoLayout布局遇到的问题