文档章节

导航控制器使用全解

哥特复心
 哥特复心
发布于 2014/04/20 23:03
字数 537
阅读 1090
收藏 2
点赞 0
评论 0

1.常见方法 1> 将子控制器vc压入栈中 [self.navigationController pushViewController:vc animated:YES];

2> 出栈(弹出栈顶控制器) [self.navigationController popViewControllerAnimated:YES];

3> 直接跳到栈底控制器(回到根控制器) [self.navigationController popToRootViewControllerAnimated:YES];

2.使用原理 1> 导航控制器内部有个viewControllers栈来存放所有的子控制器 2> 展示在导航控制器上面的永远是栈顶控制器的view

3.一般情况下,导航栏上面显示什么内容,由当前栈顶控制器的navigationItem属性决定

  • navigationItem.title : 导航栏的中间标题(也可以直接通过控制器的title属性设置标题)
  • navigationItem.titleView : 导航栏的中间控件
  • navigationItem.leftBarButtonItem : 导航栏左边的按钮
  • navigationItem.rightBarButtonItem : 导航栏右边的按钮

4.特殊:导航栏左上角的返回按钮 文字 由上一个控制器的navigationItem.backBarButtonItem决定

  • 返回按钮不需要监听(默认的操作就是出栈)

利用storyboard完成导航 1.storyboard中用来跳转的每一根线 都是 一个 UIStoryboardSegue对象 1> 自动跳转 (从 某个按钮 拖线到 下一个目的控制器)

2> 手动跳转 (从 来源控制器 拖线到 下一个目的控制器)

  • 一定要给segue绑定一个唯一的identifier
  • 如何跳转?通过来源控制器的一个方法来执行这个UIStoryboardSegue对象 [self performSegueWithIdentifier:@"login2home" sender:nil];

2.UIStoryboardSegue对象 // 唯一标识 @property (nonatomic, readonly) NSString *identifier; // 来源控制器 @property (nonatomic, readonly) id sourceViewController; // 目的控制器 @property (nonatomic, readonly) id destinationViewController;

3.通过UIStoryboardSegue对象完成的跳转过程 1> 初始化(创建)UIStoryboardSegue对象

2> 设置UIStoryboardSegue对象的identifier标识 和 sourceViewController来源控制器

3> 创建目的控制器,并且设置为UIStoryboardSegue对象的destinationViewController属性

4> 在跳转之前,会调用一次sourceViewController的下面方法 // 后面的sender参数就是当初调用performSegueWithIdentifier:sender:方法传入的参数

  • (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

5> 执行UIStoryboardSegue对象 [segue perform];

6> 会将destinationViewController目的控制器压入栈中

© 著作权归作者所有

共有 人打赏支持
哥特复心
粉丝 109
博文 68
码字总数 40593
作品 0
长沙
高级程序员
轻松学习之二——iOS利用Runtime自定义控制器POP手势动画

前言 苹果在IOS7以后给导航控制器增加了一个Pop的手势,只要手指在屏幕边缘滑动,当前的控制器的视图就会跟随你的手指移动,当用户松手后,系统会判断手指拖动出来的大小来决定是否要执行控制...

北方人在上海
2016/07/23
5
0
【原创】遨游springmvc之DispatcherServlet

1.机制 Dispatcher是springmvc前端控制器模式的实现,它提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理,Dispatcher负责请求的派遣,它与spring ioc完美继承,从而可以...

开源中国首席脑科主任
2016/07/23
71
0
IOS开发之导航控制器原理

#import "AppDelegate.h" #import "FirstViewController.h" #import "SecondViewController.h" #import "ThirdViewController.h" #import "ForthViewController.h" @interface AppDelegate (......

鹿微微鹿
2016/04/17
20
0
Tab Bar Controller和Navigation Controller混合使用详细教程

在IPHONE上,NAV和TAB混合使用的案例很多.但很多书籍都没详细介绍这个是怎么使用的.我也找了很久才弄清楚怎么做.现在分享给大家. 1.先建立一个Window-based Application 项目. 2.加入一个Tab...

JohnZr
2012/06/24
0
0
ios开发之导航控制器的原理

#import "AppDelegate.h" #import "FirstViewController.h" #import "SecondViewController.h" #import "ThirdViewController.h" #import "ForthViewController.h" @interface AppDelegate (......

鹿微微鹿
2016/04/14
52
0
UITabBarController和UINavigationController的区别

UITabBarController 和UINavigationController都可以作为 window的根控制器(rootViewController),但界面内容的展示样式是不同的。其区别如下: 1 UITabBarController的导航栏展示位置在屏幕...

奋斗的青春年华
2016/06/20
44
0
Manipulating a Navigation Controller’s Array of Vi

问题: 你想要直接控制导航控制器中的的特性 解决方法: 使用UINavigationController类中的ViewControllers属性来访问和修改与导航控制器相关的视图控制器 - (void) goBack { /得到控制器的当...

人生天地间
2014/02/17
0
0
iOS开发系列--视图切换

概述 在iOS开发中视图的切换是很频繁的,独立的视图应用在实际开发过程中并不常见,除非你的应用足够简单。在iOS开发中常用的视图切换有三种,今天我们将一一介绍: UITabBarController UIN...

jianxin160
2015/08/18
0
0
iOS开发中标签控制器的使用——UITabBarController

iOS开发中标签控制器的使用——UITabBarController 一、引言 与导航控制器相类似,标签控制器也是用于管理视图控制器的一个UI控件,在其内部封装了一个标签栏,与导航不同的是,导航的管理方...

珲少
2015/11/13
0
0
iOS使用Storyboards创建导航控制器和表视图

在本教程中,我们将演示如何使用Storyboards构建导航界面和与UITableView的集成。为了让任务比较简洁,我们仅仅关注于解释概念,因此没有华丽的界面或漂亮的图片,将美工设计留给将来的教程。...

三只脚的猪
2014/02/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
12分钟前
0
0
There is no session with id[xxx]

参考网页 https://blog.csdn.net/caimengyuan/article/details/52526765 报错 2018-07-19 23:04:35,330 [http-nio-1008-exec-8] DEBUG [org.apache.shiro.web.servlet.SimpleCookie] - Found......

karma123
13分钟前
0
0
vue-router懒加载

1. vue-router懒加载定义 当路由被访问的时候才加载对应组件 2. vue-router懒加载作用 当构建的项目比较大的时候,懒加载可以分割代码块,提高页面的初始加载效率。 ###3. vue-router懒加载实...

不负好时光
20分钟前
0
0
庆祝法国队夺冠:用Python放一场烟花秀

天天敲代码的朋友,有没有想过代码也可以变得很酷炫又浪漫?今天就教大家用Python模拟出绽放的烟花庆祝昨晚法国队夺冠,工作之余也可以随时让程序为自己放一场烟花秀。 这个有趣的小项目并不...

猫咪编程
22分钟前
0
0
SpringBoot | 第七章:过滤器、监听器、拦截器

前言 在实际开发过程中,经常会碰见一些比如系统启动初始化信息、统计在线人数、在线用户数、过滤敏高词汇、访问权限控制(URL级别)等业务需求。这些对于业务来说一般上是无关的,业务方是无需...

oKong
35分钟前
5
0
存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储

存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储 存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储。 顺序结构和链接结构适用在内存结构中。 顺序表每个单元都是按物理...

DannyCoder
46分钟前
1
0
Firefox 61已经为Ubuntu 提供支持

最新和最好的Mozilla Firefox 61 “Quantum”网络浏览器已经为Ubuntu Linux操作系统的用户提供了支持,现在可以通过官方软件库进行更新。 Mozilla于2018年6月26日发布了Firefox 61版本,该版...

六库科技
今天
0
0
Win10升级后执行系统封装(Sysprep)报错

开始封装 一年多以前开始给公司封装Win10系统,便于统一给公司电脑初始化携带各种软件的系统,致力于装完既可以开发的状态。那时候最新的版本是Win10 1703版本,自然就以他为母盘,然后结合V...

lyunweb
今天
40
0
php 性能优化

#什么情况下会遇到性能问题 PHP 语法使用的不恰当

to_be_better
今天
0
0
Jenkins 构建触发器操作详解

前言 跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。 一、定时构建语法 * * * * * (五颗星,中间用空格隔...

覃光林
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部