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页面间传递参数四种方式相关推荐

  1. PHP页面间参数传递的四种方式

    我们定义page01.php和page02.php两个php文件,将page01中的内容想办法传递到page02,然后供我们继续使用. 第一种: 使用客户端浏览器的cookie.cookie很容易理解 ...

  2. 微信小程序页面间通信的5种方式

    微信小程序页面间通的5种方式 PageModel(页面模型)对小程序而言是很重要的一个概念,从app.json中也可以看到,小程序就是由一个个页面组成的. 如上图,这是一个常见结构的小程序:首页是一个 ...

  3. 详解微信小程序页面间传递信息的三种方式

    详解微信小程序页面间传递信息的三种方式 在开发微信小程序的时候,经常会遇到在页面间传递信息的情况,有三种方法可以实现. 1. 使用数据缓存 将要存储的数据使用以下方法放入缓存 wx.setStorag ...

  4. jsp传递参数java_JSP页面间传递参数方法介绍

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

  5. php 多参数函数,php自定义函数的参数在函数间传递的三种方式详解

    在调用函数时,需要向函数传递参数,被传入的参数成为实参,而函数定义时的参数为形参.上一章节我们对php自定义函数的参数进行了实例讲解,本章节就重点介绍一下函数间参数传递的3种方式:按照值传递,按引用传 ...

  6. Android页面数据传递的两种方式

    在android中实现页面中数据的传递有两种方式: 1:第一种数据传递的方式是通过inputExtra方法来进行数据的传递的 2:第二中方法是通过bundle的方法来实现数据的传递的 接下来我们首先来 ...

  7. 请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。

    QueryString  传递一个或多个安全性要求不高或是结构简单的数值.但是对于传递数组或对象的话,就不能用这个方法了 session(viewstate) 简单,但易丢失 作用于用户个人,过量的存 ...

  8. 5种ASP.NET页面间传递参数实例代码

    本文假设第一个页面为send.aspx,第二个页面为receive.aspx 1.通过URL链接地址传递 (1) send.asp代码 protected void Button1_Click(obj ...

  9. IOS数据本地存储的四种方式--

    注:借鉴于:http://blog.csdn.net/jianjianyuer/article/details/8556024 在IOS开发过程中,不管是做什么应用,都会碰到数据保存问题.将数据保存到 ...

最新文章

  1. 日期代码的js 中将2012年显示成了112年
  2. VTK:几何对象之Cube
  3. windows下基于IIS配置ssl证书
  4. 前端学习(1312):响应报文
  5. websocket 压力测试_打造最强移动测试平台
  6. Elasticsearch】es 模糊查询导致Elasticsearch服务宕机
  7. 为什么ArcGIS 10.3导出 Shapefile的字段名会被截断成3个汉字?解决方法如下
  8. 设计模式(十四):适配器模式
  9. 计算机网络超详细笔记(六):传输层
  10. 社交网络上的影响传播模型
  11. Web前端主流框架优缺点有哪些?小编帮你分析
  12. 增长率方程用c语言,听宋志晓老师讲解资料分析中的隔年增长率公式(04.04)
  13. 树状数组再进阶(区间修改+区间查询)
  14. 说谎者的辩白 -卢梭
  15. Redis--变慢的原因及排查方法--系统方面
  16. 读《STRENGTHNET: DEEP LEARNING-BASED EMOTION STRENGTH ASSESSMENT FOR EMOTIONAL SPEECH SYNTHESIS》
  17. [转载]用VB编写一个聊天程序!
  18. pyechart基本绘图(python)
  19. python实验心得_Python的学习心得
  20. CC2541之OAD

热门文章

  1. helpdesk2 foxmail和outlook互导问题
  2. 业务、架构、技术,我们应该关注什么
  3. MDP动态规划解法(三)
  4. windows c++ 原子操作_高分辨质谱数据处理操作篇
  5. linux蓝牙不识别微软鼠标,主编教您win10系统蓝牙鼠标能配对识别但无法使用的具体步骤...
  6. (四)Netty之Buffer缓冲区
  7. php判断简写,怎么简写php 中的三元运算符
  8. cisco 华三 对接_Cisco ACS 5.6与华为,H3C设备对接操作指引
  9. HuggingFace学习2:使用Bert模型训练文本分类任务
  10. python二维数组读取数报错TypeError: list indices must be integers or slices, not tuple