导航控制器UINavigationController简介:

 只要看到控制器界面上部有一个条就是导航控制器UINavigationController

  导航控制器最上面有一个条是导航条高度44,Y值是20,导航条上20是状态栏;导航条内有一个子控制件,这个子控件超过了导航条,有一个透明效果,是从0位置开始的,子控件超过父控件也是能够显示的;

  导航控制器的结构:导航控制器最上面是一个导航条,导航条下面是导航控制器存放子控制器的View(栈顶控制器的View),并且有一个存放子控制器的数组childsViewControllers,最下面是导航控制器的View。

导航控制器UINavigationController的使用:

  初始化:在application:didFinishLaunchingWithOptions(程序加载完毕)方法中设置

    1、创建窗口:self.window =[[UIWindow alloc] initWithFrame:[UIScreen  mainScreen].bounds];

    2、设置根控制器:UIVIewController *Vc = [[UIViewController  alloc] init];

              UINavigationController *nav = [[UINavigationController  alloc] initWithRootViewController:Vc];

              self.window.rootViewController = nav;

    3、显示窗口:[self.window  makeKeyAndVisible];

  

  加载视图控制器   pushViewController:viewController animated:BOOL

  推出视图控制器   popViewController:viewController Animated:BOOL  

  推出到指定控制器   popToViewController:viewController animated:BOOL

  退到根控制器       popToRootViewController:viewController Animated:BOOL

  导航栏是否显示   setNavigationBarHidden:BOOL  animated:BOOL

UINavigation属性

navigationItem

  每一个加到navigationController的ViewController都会有一个对应的navigationItem,该对象是以懒加载的方式创建

  [self.nagationController.navigationBar  setTranslucent:NO];//设置navigationBar的半透明

  [self.navigationController.navigationBar  setBarTintColor:[UIColor  redColor]];//设置navigationBar的颜色

  [self.navigationController.navigationBar  setTintColor:[UIColor  yellowColor]];//设置navigationBar左右按钮的颜色

  1. self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonItemStyleDone target:self action:Nil];//设置navigationbar左边按钮
  2. self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonItemStylePlain target:self action:Nil];//设置navigationbar右边按钮

UIBarButtonItem属于MVC的M,定义了UINavigationItem上按钮的触发事件,外观等

-initWithBarButtonSystemItem:target:action:设置按钮样式及触发事件
-initWithTiltle:style:target:action: 设置标题的触发事件
-initWithImage:style:target:action:设置视图的触发事件
tintColor  设置tintColor可以影响添加在导航条上的系统样式的按钮的颜色

titleTextAttributes:这是navigationBar的一个属性,通过它可以设置title部分字体的属性

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

UITabbarController

APP标配控制器:UINavigationController的更多相关文章

  1. app标配控制器:UITabBarController

    UITabBarController UITabBarController和UINavigationController类似可以轻松的管理多个控制器,底部有一个条,底部条tabBar的高度是49. U ...

  2. iOS开发UINavigation——导航控制器UINavigationController

    iOS开发UINavigation系列一——导航栏UINavigtionBar摘要iOS中的导航条可以附着于导航控制器之中使用,也可以在controller中单独使用,这篇博客,主要讨论有关导航栏的使 ...

  3. 导航栏控制器和标签栏控制器(UINavigationController和UITabBarController)混用

    很多时候,在UI设计方面同时需要使用导航控制器和标签栏控制器,这时,需要掌握如何设计结合使用这两种不同控制器.比如手机QQ,程序有三个标签 栏(分别为消息.联系人.动态),同时在选择某个联系人或者会话 ...

  4. iOS -App主流框架UINavigationController && UITabBarController的简单使用

     一个iOS app几乎没有由一个控制器组成,除非这个app非常简单.       当app中有多个控制器的时候,就需要对这些控制器进行管理,用1个控制器去管理其他多个控制器:       如图所示: ...

  5. 导航控制器(UINavigationController)

    导航控制器管理一系列显示层次型信息的场景.它创建一个视图管理器"栈",栈底为根视图控制器,用户在场景间切换时,依次将试图控制器压入栈中,且当前场景的试图控制器位于栈顶.要返回上一级 ...

  6. Snail—UI学习之导航视图控制器UINavigationController(系统)

    背景 有一个根视图控制器 然后跳转到第一个界面  第一个界面能够返回到根视图 也能够跳转到第二个视图 第二个视图能够直接返回到根视图 新建三个ViewController    RootViewCon ...

  7. 利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值

    实验说明 (1)正向传值:比如A类里地值要传给B类用,就是我们先在A类中声明一个B类对象(当然B类头文件要import过来),然后把A类中得某个 值传递给B类中得某个值(所以需要在B类中先准备一个变量 ...

  8. 轻量级应用开发之(10) UINavigationController导航控制器

    一 多控制器 1)一个iOS的app很少只由一个控制器组成,除非这个app极其简单2)当app中有多个控制器的时候,我们就需要对这些控制器进行管理3)有多个view时,可以用一个大的view去管理1个 ...

  9. [iOS基础控件 - 6.11.2] - UINavigationController 多控制器 简单使用

    A.概念 1.通常一个app有多个控制器 2.需要对这些控制器进行管理 3.有多个view的时候,用一个父view去管理多个子view 4.控制器管理也是如此,使用给一个父控制器,去控制子控制器   ...

随机推荐

  1. 如何把 Callback 接口包装成 Promise 接口

    最近一段时间一直在看Node.js,在开发过程中经常要调用一些异步接口,通常在接口的最后一个参数会传入一个回调函数,可以用来处理异常,非异常情况.大致模式如下: var fs = require(“f ...

  2. 1010. Radix (25)(未完成)

    Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The an ...

  3. [地图SkyLine二次开发]关于IE内存限制问题(1G)

    相信很多人也遇到过同样的问题,地图加载中,IE占用的内存一直增加,到了1G多一些的时候,IE就崩溃了. 在网上查阅了一番,有很多结果,下面归纳一下: a).64bit的IE最多可达到4G的内存,但Sk ...

  4. js 判断 是否位数字

    isNaN(val) val为数字返回false 不为数字返回truedocument.write(isNaN(123)); document.write(isNaN(-1.23)); documen ...

  5. join / left join / right join

    1 可以自己join自己 SELECT * FROM table_1 t1join table_1 ton t.target_id = t1.target_id 2 join要双方都满足才可以出现结果 ...

  6. liunx 系统 git clone ssh代码时需要sshkey

    1. 在root用户目录下 执行命令 cd .ssh cat id_rsa.pub 粘贴 ssh key

  7. mysql执行大量sql语句

    今天需要通过csv上传大量数据到数据库 直接逐行执行insert效率极其低下 后面通过拼接insert,稍微提高了些许效率,但依然不满足 最后发现,把这些插入放入同一个事务里面可以大大提高效率 beg ...

  8. Discuz 网站移至 Ubuntu 14.04.4 LTS VPS 配置

     查看 当前系统版本信息 复制命令:lsb_release -a 1.首先更新本地软件库索引 复制命令:apt-get update 2.安装apache2 复制命令:apt-get install ...

  9. SPSS数据分析—基于最优尺度变换的典型相关分析

    传统的典型相关分析只能考虑变量之间的线性相关情况,且必须为连续变量,而我们依然可以使用最优尺度变换来拓展其应用范围,使其可以分析非线性相关.数据为分类数据等情况,并且不再仅限于两个变量间的分析, 虽然 ...

  10. linux哲学思想

    linux哲学思想 1.一切皆为文件 linux将所有的对象几乎都抽象为文件,无论是硬件设备.还是通讯接口都当做文件处理,这样可以设计统一的访问控制操作(read();write();delete() ...