iOS:切换视图时,反向传递数据方法一:通知
通知方式:
1.有一个(单例)通知中心,负责管理iOS中的所有通知
2.需要获取某种通知,必须注册成为观察者(订阅)
3.不再需要取某种通知时,要取消注册。
4.你可以向通知中心发送某种通知,通知中心会转发给相应的观察者(订阅者)。

将第一个控制器和第二个控制器以modal(push)方式联接后,每一个控制器和各自的类相关联,同时将segue的idetifier标识设置一个名字,正向传数据时,需要根据segue的标识符进行唯一的识别。反向传数据时,采用通知的方法。
1、所有的文件:

2、第一个控制器FirstViewController关联的类为:

3、第二个控制器SecondViewcontroller关联的类为:

4、给segue的identifier设置一个名字,作为标识

具体代码如下:
FirstViewController控制器关联的viewController(.h/.m)类:

#import "ViewController.h"
#import "SecondViewController.h" @interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *firstTextField; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
} //重写该方法,视图切换时,自动调用
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"modal"])
{
//获取目的控制器
SecondViewController *secondVC = segue.destinationViewController; //正向传数据
secondVC.information = self.firstTextField.text; //注册通知,成为观察者
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(receiveInfo:) name:NOTIFICATIONTEPY object:nil];
}
} //receiveInfo事件
-(void)receiveInfo:(NSNotification*)notification
{
//反向接收通知中的数据
self.firstTextField.text = [notification.userInfo objectForKey:NOTIFICATIONINFOKEY]; //取消注册
[[NSNotificationCenter defaultCenter]removeObserver:self name:NOTIFICATIONTEPY object:nil];
}
@end
SecondViewController控制器关联的SecondViewController(.h/.m)类:

#import "SecondViewController.h" @interface SecondViewController ()
@property (weak, nonatomic) IBOutlet UITextField *secondTextField; @end @implementation SecondViewController
//返回时的触发事件
- (IBAction)returnClicked:(UIBarButtonItem *)sender
{
//反向传递数据 //1、消息内容
NSDictionary *dicInfo = @{NOTIFICATIONINFOKEY:self.secondTextField.text}; //2、通过通知中心传递出去
[[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATIONTEPY object:self userInfo:dicInfo]; //关闭模态窗口
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
//[self dismissViewControllerAnimated:YES completion:nil];
} - (void)viewDidLoad {
[super viewDidLoad]; // 显示文本框内容(接受传递过来的数据)
self.secondTextField.text = self.information;
} @end
iOS:切换视图时,反向传递数据方法一:通知的更多相关文章
- iOS:切换视图时,反向传递数据方法二:代理
代理: 1.发送信息的控制器设置一个代理,并自定义一个代理的方法,用来传递数据 2.接受信息的控制器遵循发送信息的控制器的协议 3.接受信息的控制器设置发送信息的控制器的代理为自己self 4.接受信 ...
- 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- iOS - 切换rootViewController时,销毁之前的控制器
一.iOS在切换根控制器时,如何销毁之前的控制器?(切换rootViewController时注意的内存泄漏) 首先.在iOS的ARC机制下,任何对象,当没有其他对象对他进行强引用时,都会被自动释放. ...
- iOS:多个单元格的删除(方法一)
采用存取indexPath的方式,来对多个选中的单元格进行删除 删除前: 删除后: 分析:如何实现删除多个单元格呢?这需要用到UITableView的代理方法,即选中单元格时对单元格做的处理,同时我们 ...
- Intent界面跳转与传递数据
Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据. intent可以激活Activity,服务,广播三类组件. 本博文讲的是显示意图激活Activity组件 ...
- ASP.NET MVC 5 学习教程:控制器传递数据给视图
原文 ASP.NET MVC 5 学习教程:控制器传递数据给视图 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字 ...
- MVC怎么在当前视图中,传递参数给到另外一个视图?
在TransData.cshtml视图中: <div> <!--在一个视图中,请求另外一个视图,并且将数据传到另外一个视图--> <!--视图中调用无返回值的方法,需要加 ...
- 【ASP.NET MVC】View与Controller之间传递数据
1 概述 本篇文章主要从操作上简要分析Controller<=>View之间相互传值,关于页面之间传值,如果感兴趣,可参考我另外一篇文章ASP.NET 页面之间传值的几种方式 . Co ...
- ASP.NET MVC中从后台控制器(Controller)传递数据到前台页面视图(View)方式
方式一: 数据存储模型Model: public class CalendarEvent { public string id { get; set; } public DateTime start ...
随机推荐
- 得分(UVa1585)
题目具体描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...
- Python全栈开发之5、几种常见的排序算法以及collections模块提供的数据结构
转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5492298.html 在面试中,经常会遇到一些考排序算法的题,在这里,我就简单了列举了几种最常见的排序算法供大家学习 ...
- Windows 8.1 操作系统常用快捷键
安装了 windows 8.1 有一段时间了,刚使用时有点儿不太习惯,后面知道了一些常用快捷键后,使用起来习惯多了.下面是一些常用的 Windows 8.1 快捷键: Ctrl + Tab: 访问所有 ...
- 牛客网 牛客练习赛43 B.Tachibana Kanade Loves Probability-快速幂加速
链接:https://ac.nowcoder.com/acm/contest/548/B来源:牛客网 Tachibana Kanade Loves Probability 时间限制:C/C++ 1秒, ...
- React Native 系列(九)
前言 本系列是基于React Native版本号0.44.3写的.很多的App都使用了Tab标签组件,例如QQ,微信等等,就是切换不同的选项,显示不同的内容.那么这篇文章将介绍RN中的Tab标签组件. ...
- HDU 1880 简单Hash
题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=1880] 中文题面,题意很简单: 题解: 把每个 魔咒 和 对应的功能分别Hash,然后分别映射到ma ...
- 【BZOJ 2039】 2039: [2009国家集训队]employ人员雇佣 (最小割)
2039: [2009国家集训队]employ人员雇佣 Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 1511 Solved: 728 Descri ...
- Opencv学习笔记2:图像模糊作用和方法
一.意义和作用: 图像的模糊处理就是将图片处理的更加模糊,如下图,左侧是原图,右侧是经过处理之后的图片. 从主观意愿上说,我们希望看到清晰的图像,而不是模糊的图像.所以很多时候我们听说还有一种专门进行 ...
- zend studio10 创建重复project from remote server
zend studio10创建重复project from remote server [本地远程到dev服务器]1.删掉已存在project隐藏文件.project .build2.如果zend10 ...
- MongoDB,pymongo
MongoDB: 数据库,nosql [{ id:1 name:"蔡文姬" age: 16 gender:"女" }, { id:1 name:"蔡文 ...