iOS页面传值方式
普遍传值方式如下:
1.委托delegate方式;
2.通知notification方式;
3.block方式;
4.UserDefault或者文件方式;
5.单例模式方式;
6.通过设置属性,实现页面间传值
着重说一下block方式:
block介绍:http://blog.csdn.net/totogo2010/article/details/7839061
链接一篇描述block回调挺有意思的文章: http://blog.csdn.net/mobanchengshuang/article/details/11751671
分析:
在B试图控制器中,定义一个block,参数为字符串
//SecondViewController.h
typedef void (^ablock)(NSString *str); //SecondViewController.h
@property (nonatomic, copy) ablock block;
在B试图控制器中,当输入名字,点击对应的确定按钮后
self.block(self.nameTextField.text);
[self dismissViewControllerAnimated:YES completion:nil];
在A视图显示,回调block
SecondViewController *second = [[SecondViewController alloc] initWithNibName:@'SecondViewController' bundle:nil];
[self presentViewController:second animated:YES completion:nil]; second.block = ^(NSString *str){
self.nameLabel.text = str;
};
------------------------------------------华丽的分割线----------------------------------------------------
以上就是block简单传值,通知NSNotification比较简单:
在需要接收值得位置先添加监听:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeTextFiled:) name:@"NNN" object:nil];
添加个方法来输出一下,看所传的值:
- (void)changeTextFiled:(NSNotification *)noti{
NSLog(@"%s--value:%@",__func__,noti.userInfo[@"value"]);
}
然后在传值的主动方发送通知:
[[NSNotificationCenter defaultCenter] postNotificationName:@"NNN" object:nil userInfo:@{@"value": mess}];
这样就可以了,但是切记,要在不用通知的位置注销通知:
[[NSNotificationCenter defaultCenter] removeObserver:self];
这就是一个完整的通知监听模式。
引用出自:iOS页面传值方式
IOS SEL (@selector) 原理及使用总结(一)
iOS页面传值方式的更多相关文章
- MVC 向页面传值方式总结(2)
MVC 向页面传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通View页面传一个Mo ...
- dotNET5的MVC页面传值方式总结
本文大致讲解mvc前后端的传值方式,包括control向view.view向control.以及action向action. 一.经典回顾 二.Controller向View传值 1. ViewBag ...
- ios常见的页面传值方式
iOS页面间的传值细分有很多种,基本的传值方式有三种:委托Delegate传值.通知NSNotification传值.Block传值,其他在项目中可能会遇到的还有:UserDefault或文件方式传值 ...
- ios 页面传值4种方式(一) 之全局变量
通用的是用代理的方式实现页面传值,但是有时候利用其它方式也可以很巧妙的解决问题,页面传值一共有4种方式: 1.使用全局变量, SharedApplication,定义一个变量来传递. 2.使用文件,或 ...
- iOS页面传值-wang
iOS页面间传值的方式(NSUserDefault/Delegate/NSNotification/Block/单例) 实现了以下iOS页面间传值:1.委托delegate方式:2.通知notific ...
- ios 多种传值方式
在网上看了看传值方法,没有找到完整的.在这把自己看到的几种传值方法写写吧. 1 . 属性传值 2 . 通知传值 3 . 代理传值 4 . block传值 5 . 单列传值 6 . ShareAppli ...
- MVC 向页面传值方式总结(1)
ViewData传值. HomeController.cs Co de: public ActionResult Index() { ViewData["Title" ...
- MVC中页面传值方式总结
MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下: 一.Controller----------->View(控制器传到视图) 1.View ...
- iOS多页面传值方式之单例传值singleton
// 要实现单例传值,那就必须得新建一个类做为单例 提供创建该类对象的类方法(因为是要在alloc开辟内存空间后赋值).所有在.h文件中声明该方法 + (instancetype)defaultUII ...
随机推荐
- 文件无刷新上传(swfUpload与uploadify)
文件无刷新上传并获取保存到服务器端的路径 遇到上传文件的问题,结合之前用到过的swfUpload,又找了一个无刷新上传文件的jquery插件uploadify,写篇博客记录一下分别介绍这两个插件的实现 ...
- ABAP中Conversion Routine示例
在SAP的Domain定义中,Output Length下面有个Convers. routine的标识,这是SAP用来进行输入输出转换的.我们知道,屏幕上的I/O字段都是字符串形式的,而数 ...
- Engine中如何实现先居中显示要素再闪烁
[解决办法]:需要在要素居中显示之后.闪烁之前执行IScreenDisplay.UpdateWindow强制全刷,如: //居中显示要素 IActiveView actView = axMapCont ...
- Android 计算布局背景的透明度
1.#ff000000 此为16进制颜色代码,前2位ff为透明度,后6位为颜色值(000000为黑色,ffffff为白色,可以用ps等软件获取). 2.透明度分为256阶(0-255),计算机上用16 ...
- C安全编码--预处理
建议和规则 建议: 用内联函数或静态函数代替与函数相似的宏 在宏参数名两边加上括号 宏替换列表应该加上括号 应该使用typedef定义编码类型 不要复用标准头文件名 理解连接标记或执行字符串化时的宏替 ...
- CSS 相邻选择器(七)
一.相邻选择器 相邻选择器前后部分之间用一个加号(+)隔开,前后两部分选择反符在结构上属于同级关系,如 相邻选择器,是根据左侧选择符指定相邻元素,然后在该相邻元素后面寻找匹配匹配右侧选择符的相信元素 ...
- C语言的判断语句
// // main.c // homeWork1222 //// #include <stdio.h> int main(int argc, const char * argv[]) { ...
- SVN Can't open file 'xxx':Premission denied
换了一台电脑,重新搭建本地svn服务器的时候,服务器搭起来了,但是用Cornerstone往服务器上传工程的时候报错 报错有以上两种,都是因为文件权限的限制 解决方法 第一种报错 1.在Finder里 ...
- iOS开发中的一些定时器
在软件开发过程中,我们常常需要在某个时间后执行某个方法,或者是按照某个周期一直执行某个方法.在这个时候,我们就需要用到定时器. 然而,在iOS中有很多方法完成以上的任务,到底有多少种方法呢?经过查阅资 ...
- C++中static用法总结
1用于局部变量 C++中局部变量有三种: (1)auto:此关键词常常省略.auto type a 常常简写为type a. 如: int a=auto int a 存储在内存的栈中,只在此局部区域有 ...