##DAY7 UINavigationController

#pragma mark ———————UINavigationController———————————

概括:

导航视图控制器也是一个视图控制器,TA管理了多个视图控制器,是系统提供给我们的容器视图控制器

导航视图控制器至少管理一个子视图控制器,这个视图控制器称为导航视图控制器的根视图控制器

如果我们的程序想要采用导航视图控制器进行布局,我们需要指定window的根视图控制器为导航视图控制器

初始化:

initWithRootViewController:

#pragma mark ———————navigationItem———————————

每一个加到导航视图控制器内部的视图控制器自带一个属性叫navigationItem

TA可以配置当前页面导航条的显示内容,比如左、右按钮,标题等。

navigationItem属性的子属性:

title

leftBarButtonItem

leftBarButtonItems

titleView

#pragma mark ———————UIBarButtonItem———————————

创建UIBarButtonItem类,设置为navigationItem的leftBarButtonItem(s)或rightBarButtonItem(s):

initWithTitle:style:target:action: 显示标题

initWithBarButtonSystemItem:target:action: 使用系统自带的图标样式

initWithImage:style:target:action: 使用自定义图标样式

注意:这里的图片会受UIBarButtonItem的影响,要添加图片原生渲染

initWithCustomView: 使用自定义视图

#pragma mark ———————navigationController———————————

navigationController属性的子属性:

viewControllers

navigationBarHidden 设置导航栏的隐藏属性,不使用导航条,但是使用导航条的递进关系等

navigationBar

navigationController属性的方法:

pushViewController:animated: 执行入栈操作,引用计数+1 second覆盖到root上面

popToViewController:animated: 创建一个新的视图控制器是不合适的,导航视图控制器是栈,root还是存在于最下面的

navigationController的模态的过渡风格属性:

modalTransitionStyle

navigationController的模态的方法:

presentViewController:animated:completion:

dismissViewControllerAnimated:completion:

#pragma mark ———————navigationBar———————————

navigationBar属性的子属性:

barStyle 设置导航栏样式

backgroundColor 设置导航条的背景颜色

barTintColor 设置导航栏颜色

tintColor 设置导航栏元素颜色

translucent 设置导航栏的默认效果,默认YES,如果为YES,屏幕左上角为坐标原点;

如果为NO,导航栏上的子视图的坐标原点为 导航栏左下角

##DAY7 UINavigationController的更多相关文章

  1. iOS UINavigationController(内容根据iOS编程编写)

    我们知道 UITabBarController 对象,可以通过使用该对象,用户可以切换不同的屏幕.当要切换的各个屏幕之间没有相互依存关系的时候,该对象可以很好的完成任务.但是当多个屏幕互有关系的时候, ...

  2. UINavigationController

    知识点: 1)UINavigationController 2)UINavigationBar 3)UINavigationItem 4)UIToolBar ===================== ...

  3. 混合使用UITabBarController和UINavigationController

    混合使用这两个控件的好处是我们可以在NavigationBar添加更多的东西,如标题,按钮等.让用户能够获得更多的信息. UITabBarController的属性ViewControllers接受以 ...

  4. 基本组件的使用——UINavigationController

    作用:在多个ViewController中切换.UINavigationController内部以栈的形式维护一组ViewController, 因此,当导航进入一个新视图的时候,会以push的形式将 ...

  5. 解决UINavigationController在pushViewController时出现的"卡顿"问题

    进行开发中,遇到了个小问题: 在使用UINavigationController的-pushViewController:animated:执行入栈一个子控制器操作时(即最新栈顶子控制器),会出现推出 ...

  6. day7

    本节作业: 选课系统 角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. ...

  7. Python之路,Day7 - Python基础7 面向对象

    本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.     引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战> ...

  8. Python Day7

    概述 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法 ...

  9. UINavigationController导航控制器初始化 导航控制器栈的push和pop跳转理解

    (1)导航控制器初始化的时候一般都有一个根视图控制器,导航控制器相当于一个栈,里面装的是视图控制器,最先进去的在最下面,最后进去的在最上面.在最上面的那个视图控制器的视图就是这个导航控制器对外展示的界 ...

随机推荐

  1. 可以把一堆dll文件放到程序目录下的一个自建目录里面

    窦宁波大哥哥的那篇文章的这种写法还是很有参考价值的. QString strLibPath(QDir::toNativeSeparators(QApplication::applicationDirP ...

  2. java.sql.ResultSetMetaData.getColumnLabel和getColumnName的区别

    如果将ResultSet的结果映射到HashMap中,要使用getColumnLabel,而不要用getColumnName,这样可提高程序的健壮性 理由: getColumnName返回的是sql语 ...

  3. mysql查询语句理解

    看一个查询语句 ,)) as passcount FROM (SELECT b.user,b.full_name,b.user_group From login_log a LEFT JOIN vic ...

  4. #include <algorithm>

    1 adjacent_find 查找重复的元素 2 find_if 查找符合条件的第一个元素 3 find_if_not 查找不符合条件的第一个元素 4 for_each 可以遍历每一个元素 5 pa ...

  5. VBA 开发学习--基础语法3

    VBA字符串函数列表 Trim(string) 去掉string左右两端空白 Ltrim(string) 去掉string左端空白 Rtrim(string) 去掉string右端空白 Len(str ...

  6. c_str()

    1.string类成员函数c_str()的原型: const char *c_str()const;//返回一个以null终止的c字符串 2.c_str()函数返回一个指向正规c字符串的指针,内容和s ...

  7. Samba在CentOS下的图形化界面的安装

    第一步:构建yum仓库(在此用的是北交大的yum仓库) 打开目录/etc/yum.repos.d下的CentOS-Base.repo文件,此处是我自己建的yum仓库,修改里面的链接地址为北交大的镜像的 ...

  8. C# 想要程序文件移动 而数据保持相对位置

    如果用的数据库是access数据库 可以把数据库文件放到bin\debug下面,引用相对位置就可以了 如果程序中有上载文件,而程序需要使用到该文件,那么我们最好也是引用相对文件,我们只需要在数据表中的 ...

  9. sql查询当天数据

    向数据库中添加日期 MS SQL SERVER: NSERT into student(studentid,time1)values('15',getdate()); MY SQLinsert int ...

  10. IOS开发之Cocoa编程—— NSUndoManager

    在Cocoa中使用NSUndoManager可以很方便的完成撤销操作.NSUndoManager会记录下修改.撤销操作的消息.这个机制使用两个NSInvocation对象栈. NSInvocation ...