iOS UINavgationController、 UINavigationBar、 UINavigationItem关系分析

  一般导航控制器含有4个对象,UINavigationController、UINavigationBar、UIViewController、UINavigationItem。

1:UINavigationController

  UINavigationController的父类是UIViewController(UIViewController,是所有控制器的基类),关系如下图所示:

  UINavigationController是一个视图容器,以栈的形式管理者多个内容视图(UIViewController)的换入(压入)和换出(弹出),自身提供视图切换的动

  画效果。

2:UINavigationBar  

  UINavigationBar 的父类是UIView

NavigaitonBar就是导航栏,位于屏幕的上方,管理整个NavigationController的navigationItem,即类似navigationcontroller一样提供了一个栈来管

理item。

3:UINavigationItem

  UINavigationItem的父类是NSObject

它包含了当前页面导航栏上需要显示的全部信息:title,prompt,titleView,leftBarButtonItem,,rightBarButtonItem,backBarButonItem。

  注意:UINavigationController中会有很多个UIViewController,每个UIViewController都会对应一个自己的UINavigationItem,用来展现

  UIViewController之间的不同之处。所以我们设置每个页面标题的时候,就必须用self.navigationItem.title这个属性。

时间: 2024-08-05 14:34:43

iOS UINavgationController、 UINavigationBar、 UINavigationItem关系分析的相关文章

【转】 UINavigationItem UINavigationBar 关系分析

原文:http://blog.csdn.net/luoyeffcs/article/details/16106707 目录 1.关系分析 2.关系综述 3.概念点 4.疑问 1.关系分析 UIBarItem-> UIBarButtonItem -> UINavigationItem 1.1 UIBarItem: UIBarItem类是一个可以放置在Bar之上的所有小控件类的抽象类.继承了该基类所有子类在外观上类似于一个Button,它们都有一个标题,图片,动作以及目标,这点可以从其子类的初始化

转: 关于Linux与JVM的内存关系分析

转自: http://tech.meituan.com/linux-jvm-memory.html Linux与JVM的内存关系分析 葛吒2014-08-29 10:00 引言 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m.从表面上,物理内存应该是足够使用的:但实际运行的情况是,会发生大量使用SWAP(说明物理内存不够使用了),如下图所示.同时,由于SWAP和GC同时

转: Linux与JVM的内存关系分析

Linux与JVM的内存关系分析 引言 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m.从表面上,物理内存应该是足够使用的:但实际运行的情况是,会发生大量使用SWAP(说明物理内存不够使用了),如下图所示.同时,由于SWAP和GC同时发生会致使JVM严重卡顿,所以我们要追问:内存究竟去哪儿了? 要分析这个问题,理解JVM和操作系统之间的内存关系非常重要.接下来主要就Li

工厂设计模式的探讨——iOS类簇的应用分析

工厂设计模式的探讨--iOS类簇的应用分析 一.何为设计模式 什么是设计模式,先来看段度娘的话: 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的:设计模式使代码编制真正工程化:设计模式是软件工程的基石脉络,如同大厦的结构一样. 其实我们不需要这么专业,在我的理解,设计模式就是一种规范化的编程习惯,养成了这样的思想与习惯,

ssh 实体关系分析确立(ER图-实体关系图)

比较简单的方式就是根据模仿同类产品,根据同类产品的进行模仿,表单就是一个起码要加的字段,然后根据项目需要额外增加字段. 注意:实体类之间的引用关系还需要考虑性能的影响.如:单向或是双向. 表设计: 设计好后: 写实体类 建立实体类到数据库的关联关系 概述 5.实体关系分析 1.类结构:带箭头是单线关联,不带箭头是双向关联 ---------------------------------------- class User (1)<------(*) class Survey  (1)-----

LCD控制器与帧率、刷新率的关系分析

源:LCD控制器与帧率.刷新率的关系分析 LCM之Fmark功能 && LCD控制器同LCD驱动器的差别 && 帧率与刷新率的关系 && OLED背光

阎学通 - 国际关系分析

阎学通 - 国际关系分析 YouTube 看完了第一集,讲得非常不错,梳理了当下的世界实事,传授了独立分析问题的方法. zz是支配世界的主要力量,是任何一个成人都必须去思考的问题,防止自己的世界观过于狭隘. 待续~ 原文地址:https://www.cnblogs.com/leezx/p/11074995.html

iOS常用框架源码分析

SDWebImage NSCache 类似可变字典,线程安全,使用可变字典自定义实现缓存时需要考虑加锁和释放锁 在内存不足时NSCache会自动释放存储的对象,不需要手动干预 NSCache的key不会被复制,所以key不需要实现NSCopying协议 第三方框架 网络 1.PPNetworkHelper 对AFNetworking 3.x 与YYCache的二次封装 简单易用,包含了缓存机制,控制台可以直接打印json中文字符 2..YTKNetwork 猿题库研发团队基于AFNetworki

UINavigationbar/UINavigationItem/UITabBar/UITabButton/UITabBarItem粑粑粑粑~

看着标题是不是乱的一塌糊涂...... . 在开发中,你非常可能就理不清这些关系,刚好闲的蛋疼,来整理一下吧. 一.UINavigationBar.UINavigationItem.UIBarButtoItem UINavigationBar是一个控件. 表示UINavigationController(导航控制器)顶部那个玩意儿.UINavigationBar上面显示什么内容,全然由UINavigationItem属性决定. UINavigationItem是一个模型(不是控件), 它能够设置