1.继承链:UIviewcontroller:uiresponder:NSObject

2.如果你想使用一些动画转换,可以遵守 UINavigationControllerDelegate

3.创建导航控制器:

    (1)- (instancetype)initWithRootViewController:(UIViewController *)rootViewController  :使用系统默认的导航栏和工具栏,通过一个根视图创建导航控制器

    (2)- (instancetype)initWithNavigationBarClass:(Class)navigationBarClass
                              toolbarClass:(Class)toolbarClass  :通过一个自定义的导航栏和工具栏创建导航控制器

4.访问导航栈的item

    (1)@property(nonatomic, readonly, strong) UIViewController*topViewController  :返回栈顶的controller

    (2)@property(nonatomic, readonly, strong) UIViewController*visibleViewController  :返回显示的controller

    (3)@property(nonatomic, copy) NSArray<__kindof UIViewController *> *viewControllers  :返回堆栈中所有的controller

    (4)- (void)setViewControllers:(NSArray<UIViewController *> *)viewControllers
                  animated:(BOOL)animated  :设置管理的视图控制器

5.推出和压进栈item

    (1)- (void)pushViewController:(UIViewController *)viewController
                  animated:(BOOL)animated  :压入新的视图控制器

    (2)- (UIViewController *)popViewControllerAnimated:(BOOL)animated  :弹出一个视图控制器 返回的是栈顶的controller 

    (3)- (NSArray<__kindofUIViewController *> *)popToRootViewControllerAnimated:(BOOL)animated  :rootviewcontroller将会成为栈顶视图,返回所有的视图

    (4)- (NSArray<__kindofUIViewController *> *)popToViewController:(UIViewController *)viewController
                                                    animated:(BOOL)animated  :弹出到某个视图控制器 返回所有弹出的controller

    (5)@property(nonatomic, readonly) UIGestureRecognizer*interactivePopGestureRecognizer  :iOS7之后,在导航中右划会进行pop操作,设置这个的enable可以控制设置手势是否失效

6.配置导航条

    (1)@property(nonatomic, readonly) UINavigationBar*navigationBar  :导航栏对象,只读属性

    (2)- (void)setNavigationBarHidden:(BOOL)hidden
                      animated:(BOOL)animated  :设置隐藏导航栏

7.配置自定义的工具栏

    (1)@property(nonatomic, readonly) UIToolbar*toolbar  :获取工具栏对象

    (2)- (void)setToolbarHidden:(BOOL)hidden
                animated:(BOOL)animated  :隐藏工具栏

    (3)@property(nonatomic, getter=isToolbarHidden) BOOL toolbarHidden  :隐藏工具栏

8.隐藏导航条

    (1)@property(nonatomic, readwrite, assign) BOOL hidesBarsOnTap  :敲击屏幕可以隐藏与显示导航栏

    (2)@property(nonatomic, readwrite, assign) BOOL hidesBarsOnSwipe  :屏幕滑动的时候隐藏导航栏,常用于tableView,上滑隐藏导航栏,下滑显示,带动画效果

    (3)@property(nonatomic, readwrite, assign) BOOL hidesBarsWhenVerticallyCompact  :横屏的时候隐藏导航栏

    (4)@property(nonatomic, readwrite, assign) BOOL hidesBarsWhenKeyboardAppears  :当键盘出现的时候隐藏导航条

    (5)@property(nonatomic, getter=isNavigationBarHidden) BOOL navigationBarHidden  :隐藏导航条

    (6)@property(nonatomic, readonly, assign) UITapGestureRecognizer*barHideOnTapGestureRecognizer  :获取敲击屏幕的手势

    (7)@property(nonatomic, readonly, strong) UIPanGestureRecognizer*barHideOnSwipeGestureRecognizer  :获取滑动屏幕的手势

    (8)@property(nonatomic, weak) id< UINavigationControllerDelegate> delegate  :设置委托

9.显示viewcontroller的动作方法

    (1)- (void)showViewController:(UIViewController *)vc
                    sender:(id)sender  :这个方法是为了iOS方法的命名统一,在导航中,其作用和push一样

UIkit框架之uUInavigationController的更多相关文章

  1. Swift - 重写UIKit框架类的init初始化方法(以UITabBarController为例)

    原来写了篇文章讲UITabBarController的用法,当时是从UIViewController跳转到UITabBarController页面,代码如下: 1 self.presentViewCo ...

  2. UIKit框架

    在今后的应用程序构建中,会陆续使用各式各样的控件,因此UIKit框架的引入是必不可少的! 一.简介 UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口.应 ...

  3. iOS学习32之UIKit框架-可视化编程-XIB

    1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...

  4. 基础框架Fundation和UIkit框架的定义和使用

    Foundation 框架为所有应用程序提供基本的系统服务 您的应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上.Foundation 框架提供许多基本的对象类 ...

  5. iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性,UIkit动力学是UIkit框架中模拟真实世界的一些特性。

    转发:http://my.oschina.net/u/1378445/blog/335014 iOS UIKit动力学 Dynamics UIAttachmentBehavior 实现iMessage ...

  6. iOS开发UIKit框架-可视化编程-XIB

    1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...

  7. 79、iOS 的Cocoa框架、Foundation框架以及UIKit框架

    Cocoa框架是iOS应用程序的基础 1. Cocoa是什么? Cocoa是 OS X和ios 操作系统的程序的运行环境. 是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发 ...

  8. UIKit 框架之UIView二

    下面这些都是UIView一些基本的东西,具体的可以参考UIKit 框架之UIView一博客 一.自定义一个View // // MyView.m // UIView // // Created by ...

  9. UIKit 框架之Bar、Controller

    UIKit框架中有各种Bar,UITabBar.UINavigationBar.UIToolbar.Bar对应的就有一些Item,tabBarItem.navigationItem.toolbarIt ...

随机推荐

  1. anaconda win10安装报错:UnicodeDecodeError解决方法

    Traceback (most recent call last): File , in <module> import conda.cli File , in <module> ...

  2. [问题2014S10] 解答

    [问题2014S10]  解答 先证明一个简单的引理. 引理  设 \(\lambda_0\) 是 \(n\) 阶方阵 \(A\) 的特征值, 则对任意的正整数 \(k\), Jordan 块 \(J ...

  3. CentOS7 续续

    1.配置网络,虚拟机为桥接模式,IP地址为 192.168.100+学号/24,配置完成后可以通过ping物理机192.168.100段,或者ping 192.168.100.140验证2.通过临时与 ...

  4. 3. Swift 数组|字典|集合

    在OC中数组,字典,集合有自己的表示方法,分别是Array,Dictionary,Set 与 String 都属于数值类型变量,他们都属于结构体. 使用简介灵活多变,个人感觉可读性变差了很多,用起来由 ...

  5. C\C++ 获取当前路径

    C\C++ 获取当前路径   获取当前工作目录是使用函数:getcwd.cwd指的是“current working directory”,这样就好记忆了. 函数说明: 函数原型:char* getc ...

  6. Unicode 与(UTF-8,UTF-16,UTF-32,UCS-2)

    Unicode是什么? Unicode源于一个很简单的想法:将全世界所有的字符包含在一个集合里,计算机只要支持这一个字符集,就能显示所有的字符,再也不会有乱码了. U+597D = 好 597D 是1 ...

  7. js 排序Json数组

    由于对用java处理数据需要各种数据类型的转换,非常郁闷,个人更偏向于用js做数据处理,直接上code,希望对你有帮助: function sortJsonArr(jsonArr, sortName, ...

  8. windows下的Nodejs及npm的安装、常用命令,Nodejs开发环境配置

    http://www.cnblogs.com/webstorm/p/5744942.html ***************************************** 第一步:下载Nodej ...

  9. GIT ON WINDOWS

    https://help.github.com/articles/generating-an-ssh-key/

  10. 001_kafka起步

    一.简介 Kafka is a distributed, partitioned, replicated commit log service. It provides the functionali ...