iOS-UINavigationController多控制器管理
UINavigationController
UINavigationController *nav = [[UINavigationController alloc] init];
CTOneViewController *one = [[CTOneViewController alloc] init];
//方法一
[nav pushViewController:one animated:YES];
//方法二
[nav addChildViewController:one];
//方法三
nav.viewControllers = @[one];
//方法四
[nav showViewController:one sender:nil];
//方法一:撤销当前栈顶控制器,返回上一个控制器
[self.navigationController popViewControllerAnimated:YES];
//方法二:popToViewController撤销到指定控制器,只能传递栈中控制器
CTTwoViewController *vc = self.navigationController.viewControllers[1];
[self.navigationController popToViewController:vc animated:YES];
//方法三:直接返回到栈底控制器
UIBarButtonItem *buttonItem1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:selfaction:@selector(Back:)];
UIBarButtonItem *buttonItem2 = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"zhongguo"] style:UIBarButtonItemStyleDone target:self action:@selector(Back:)];
UIBarButtonItem *buttonItem3 = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStyleDone target:selfaction:@selector(Back:)];
self.navigationItem.leftBarButtonItem = buttonItem1;
self.navigationItem.leftBarButtonItems = @[buttonItem1, buttonItem2, buttonItem3];
@property (nonatomic, readonly) NSString *identifier;//唯一标识
@property (nonatomic, readonly) id sourceViewController;//来源控制器
@property (nonatomic, readonly) id destinationViewController;//目标控制器
.png)
[self performSegueWithIdentifier:@"login2contacts" sender:nil];
//直接赋值
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
CTContactsTableViewController *contact = segue.destinationViewController;
contact.navigationItem.title = [NSString stringWithFormat:@"%@的通讯录", self.textAccount.text];
}
//在执行跳转前,当前控制器在调用prepareForSegue方法后成为目标控制器的代理
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
CTAddViewController * addViewController = (CTAddViewController *)segue.destinationViewController;
addViewController.delegage = self;
}
//实现目标控制器代理中的方法,可获取数据并触发相应的操作
- (void)addViewControllerBtnSave:(CTAddViewController *)addViewController
{
CTContact *contact = addViewController.contact;
[self.contacts addObject:contact];
如果需要在跳转页面的时候,做一些操作效果,可以自定义导航控制器重写push或者pop方法(重写这个方法,也可以取消一些不想要的效果),或者作为导航控制器的代理,监听跳转方法。
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController*)viewController animated:(BOOL)animated
iOS-UINavigationController多控制器管理的更多相关文章
- iOS开发 - UIViewController控制器管理
创建一个控制器 控制器常见的创建方式有下面几种 //通过storyboard创建 //直接创建 ViewController *vc = [[ViewController alloc] init]; ...
- IOS UINavigationController 导航控制器
/** 导航控制器掌握: 1.创建导航控制器 UINavigationController *nav = [[UINavigationController alloc] initWithRootVie ...
- UINavigationController 子控制器管理原理
UINavigationController 显示在导航控制器上的控制器 永远是栈顶控制器 后进先出 先进后出原则 /** * 程序获得焦点才能获取触摸事件 * */- (void)applicat ...
- iOS之多控制器管理--项目中的常见文件
项目中的常见文件 内容大纲: 1.LaunchScreen 2.info.plist文件 3.pch文件 1.LaunchScreen xcode5和xcode6区别 1.xcode6没有Framew ...
- iOS:iOS中的多控制器管理
iOS中的控制器有三种创建方式: 1.通过storyboard创建 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@" ...
- 控制器管理UINavigationController、UINavigationBar
控制器管理 掌握 控制器以及view的多种创建方式 UINavigationController的简单使用:添加\移除子控制器 UINavigationBar内容的设置 控制器的生命周期方法 Segu ...
- AJ学IOS(23)UI之控制器管理
AJ分享,必须精品 控制器以及view的多种创建方式 控制器view的加载 通过storyboard创建 1:先加载storyboard⽂件(Test是storyboard的⽂文件名) UIStory ...
- [iOS基础控件 - 6.11.2] - UINavigationController 多控制器 简单使用
A.概念 1.通常一个app有多个控制器 2.需要对这些控制器进行管理 3.有多个view的时候,用一个父view去管理多个子view 4.控制器管理也是如此,使用给一个父控制器,去控制子控制器 ...
- iOS UINavigationController Class Translation
类 UINavigationController 一个容器视图控制器,定义了用于导航分层内容的基于堆栈的方案. 概述 导航控制器是一个在导航界面中,管理一个或多个子视图控制器的容器视图控制 ...
- iOS 控制单个控制器旋转
iOS 控制单个控制器旋转 控制单个ViewController 的旋转 //不旋转,保持竖屏 //iOS 5 - (BOOL) shouldAutorotateToInterfaceOrientat ...
随机推荐
- Django后台中文乱码
无论如何,刚开始一定要写上默认编码utf8!!!!!! 第一种办法: 检查 ...\Lib\site-packages\Django-1.10.2-py2.7.egg\django\conf\loca ...
- 12-Vue的使用-安装 - 条件渲染
一.安装 1. 去vue官网: https://cn.vuejs.org/ 2. 引入vue.js文件 <body> <script src="vue.js"& ...
- 01_第一次如何上传GitHub(转)Updates were rejected because the tip of your current branch is behind
https://www.cnblogs.com/code-changeworld/p/4779145.html 刚创建的github版本库,在push代码时出错: $ git push -u orig ...
- POJ P2279 Mr. Young's Picture Permutations 题解
每日一题 day14 打卡 Analysis 五维dpf[a1,a2,a3,a4,a5]表示各排从左端起分别占了a1,a2,a3,a4,a5个人时合影方案数量然后我们枚举a1,a2,a3,a4,a5从 ...
- MongoDB 副本集节点添加与删除
replica set多服务器主从,添加,删除节点,肯定会经常遇到的.下面详细说明一下,添加,删除节点的2种方法. 一,利用rs.reconfig,来添加,删除节点 1,添加节点 查看复制打印 rep ...
- kindeditor如何使用
亲测能用: URL地址:https://jingyan.baidu.com/article/ab69b270b287332ca7189f19.html
- 树套树【bzoj3262】陌上花开
/* [bzoj3262]陌上花开 2014年6月19日1,2430 Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),又三个整数表示.现要对每朵花评级,一朵花的 ...
- 容器网络启用RDMA高速通讯-Freeflow
容器网络启用RDMA高速通讯-Freeflow 容器网络启用RDMA高速通讯-Freeflow 本文编译自: Freeflow,https://github.com/openthings/Freefl ...
- 决策单调性优化DP学习笔记
用途 废话,当然是在DP式子满足某些性质的时候来优化复杂度-- 定义 对于\(j\)往大于\(j\)的\(i\)转移,可以表示成一个关于\(i\)的函数\(f_j(i)\),也就是\(dp_i=\ma ...
- elasticsearch 动态映射
https://www.elastic.co/guide/cn/elasticsearch/guide/current/dynamic-mapping.html#dynamic-mapping当 El ...