ios页面间传递参数四种方式
1、使用SharedApplication,定义一个变量来传递.
2、使用文件,或者NSUserdefault来传递
3、通过一个单例的class来传递
4、通过Delegate来传递。
IOS开发使用委托delegate在不同窗口之间传递数据是本文要介绍的内容,主要是来讲解如何使用委托delegate在不同窗口之间传递数据,具体内容来看详细内容。在IOS开发里两个UIView窗口之间传递参数方法有很多,比如
前面3种方法,暂且不说,这次主要学习如何使用通过Delegate的方法来在不同的UIView里传递数据
比如: 在窗口1中打开窗口2,然后在窗口2中填入一个数字,这个数字又回传给窗口1。
窗口1
窗口2
窗口2的结果传递给窗口1
1、首先定义个一委托UIViewPassValueDelegate用来传递值
@protocol UIViewPassValueDelegate - (void)passValue:(NSString *)value; @end
这个protocol 就是用来传递值
2、在窗口1的头文件里,声明delegate
#import <UIKit/UIKit.h> #import "UIViewPassValueDelegate.h" @interface DelegateSampleViewController : UIViewController <UIViewPassValueDelegate> { UITextField *_value; } @property(nonatomic, retain) IBOutlet UITextField *value; - (IBAction)buttonClick:(id)sender; @end
并实现这个委托
- (void)passValue:(NSString *)value { self.value.text = value; NSLog(@"the get value is %@", value); }
button的Click方法,打开窗口2,并将窗口2的delegate实现方法指向窗口1。
- (IBAction)buttonClick:(id)sender { ValueInputView *valueView = [[ValueInputView alloc] initWithNibName:@"ValueInputView" bundle:[NSBundle mainBundle]]; valueView.delegate = self; [self setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; [self presentModalViewController:valueView animated:YES]; }
第二个窗口的实现
.h 头文件
#import <UIKit/UIKit.h> #import "UIViewPassValueDelegate.h" @interface ValueInputView : UIViewController { NSObject<UIViewPassValueDelegate> * delegate; UITextField *_value; } @property(nonatomic, retain)IBOutlet UITextField *value; @property(nonatomic, retain) NSObject<UIViewPassValueDelegate> * delegate; - (IBAction)buttonClick:(id)sender; @end
.m实现文件
#import "ValueInputView.h" @implementation ValueInputView @synthesize delegate; @synthesize value = _value; - (void)dealloc { [self.value release]; [super dealloc]; } - (IBAction)buttonClick:(id)sender { [delegate passValue:self.value.text]; NSLog(@"self.value.text is%@", self.value.text); [self dismissModalViewControllerAnimated:YES]; } - (void)didReceiveMemoryWarning { // Releases the view if it doesn't have a superview. [super didReceiveMemoryWarning]; // Release any cached data, images, etc. that aren't in use. } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; } @end
转载于:https://www.cnblogs.com/Peak-Banish/p/4004980.html
ios页面间传递参数四种方式相关推荐
- PHP页面间参数传递的四种方式
我们定义page01.php和page02.php两个php文件,将page01中的内容想办法传递到page02,然后供我们继续使用. 第一种: 使用客户端浏览器的cookie.cookie很容易理解 ...
- 微信小程序页面间通信的5种方式
微信小程序页面间通的5种方式 PageModel(页面模型)对小程序而言是很重要的一个概念,从app.json中也可以看到,小程序就是由一个个页面组成的. 如上图,这是一个常见结构的小程序:首页是一个 ...
- 详解微信小程序页面间传递信息的三种方式
详解微信小程序页面间传递信息的三种方式 在开发微信小程序的时候,经常会遇到在页面间传递信息的情况,有三种方法可以实现. 1. 使用数据缓存 将要存储的数据使用以下方法放入缓存 wx.setStorag ...
- jsp传递参数java_JSP页面间传递参数方法介绍
JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...
- php 多参数函数,php自定义函数的参数在函数间传递的三种方式详解
在调用函数时,需要向函数传递参数,被传入的参数成为实参,而函数定义时的参数为形参.上一章节我们对php自定义函数的参数进行了实例讲解,本章节就重点介绍一下函数间参数传递的3种方式:按照值传递,按引用传 ...
- Android页面数据传递的两种方式
在android中实现页面中数据的传递有两种方式: 1:第一种数据传递的方式是通过inputExtra方法来进行数据的传递的 2:第二中方法是通过bundle的方法来实现数据的传递的 接下来我们首先来 ...
- 请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
QueryString 传递一个或多个安全性要求不高或是结构简单的数值.但是对于传递数组或对象的话,就不能用这个方法了 session(viewstate) 简单,但易丢失 作用于用户个人,过量的存 ...
- 5种ASP.NET页面间传递参数实例代码
本文假设第一个页面为send.aspx,第二个页面为receive.aspx 1.通过URL链接地址传递 (1) send.asp代码 protected void Button1_Click(obj ...
- IOS数据本地存储的四种方式--
注:借鉴于:http://blog.csdn.net/jianjianyuer/article/details/8556024 在IOS开发过程中,不管是做什么应用,都会碰到数据保存问题.将数据保存到 ...
最新文章
- 日期代码的js 中将2012年显示成了112年
- VTK:几何对象之Cube
- windows下基于IIS配置ssl证书
- 前端学习(1312):响应报文
- websocket 压力测试_打造最强移动测试平台
- Elasticsearch】es 模糊查询导致Elasticsearch服务宕机
- 为什么ArcGIS 10.3导出 Shapefile的字段名会被截断成3个汉字?解决方法如下
- 设计模式(十四):适配器模式
- 计算机网络超详细笔记(六):传输层
- 社交网络上的影响传播模型
- Web前端主流框架优缺点有哪些?小编帮你分析
- 增长率方程用c语言,听宋志晓老师讲解资料分析中的隔年增长率公式(04.04)
- 树状数组再进阶(区间修改+区间查询)
- 说谎者的辩白 -卢梭
- Redis--变慢的原因及排查方法--系统方面
- 读《STRENGTHNET: DEEP LEARNING-BASED EMOTION STRENGTH ASSESSMENT FOR EMOTIONAL SPEECH SYNTHESIS》
- [转载]用VB编写一个聊天程序!
- pyechart基本绘图(python)
- python实验心得_Python的学习心得
- CC2541之OAD
热门文章
- helpdesk2 foxmail和outlook互导问题
- 业务、架构、技术,我们应该关注什么
- MDP动态规划解法(三)
- windows c++ 原子操作_高分辨质谱数据处理操作篇
- linux蓝牙不识别微软鼠标,主编教您win10系统蓝牙鼠标能配对识别但无法使用的具体步骤...
- (四)Netty之Buffer缓冲区
- php判断简写,怎么简写php 中的三元运算符
- cisco 华三 对接_Cisco ACS 5.6与华为,H3C设备对接操作指引
- HuggingFace学习2:使用Bert模型训练文本分类任务
- python二维数组读取数报错TypeError: list indices must be integers or slices, not tuple