界面间的传值

属性传值----从前往后

步骤:

1.在后一个界面定义属性.(属性类型和传输数据类型一致)

2.在从前一个界面进入下一个界面之前, 将数据传给第二界面

3.第二个界面取出对应的数据给对应的控件显示

代理传值----从后往前

步骤:1.在后一个界面定义协议:(定义一个传值的方法, 这个方法必须有参数, 参数的类型必须和传输数据类型一致)

2.后一个界面,定义代理属性, 用来保存代理对象

3.在进入到后一个界面之前, 指定后一个界面的代理对象为前一个界面

4.前一个界面服从协议

5.前一个界面实现协议中的方法

6.后一个界面让代理执行协议中的方法(执行方法时, 把传输数据作为方法的参数)时机是返回上一界面之前

单例传值----从前往后或者从后往前

单例传值

1.定义单例类, 提供创建单例对象的+号方法 命名规范:以main shared standard defalut开头

2.在单例类中定义属性, 存储要传递的数据(属性类型和传输数据类型一致)

3.在进入下一界面之前, 将数据让单例对象存储

4.在其他界面中 直接从单例对象中获取数据即可

单例:保证一个类只能有一个对象

新建单例类 添加创建对象的+号方法, 内部保证无盖该方法调用多少次. 对象只创建一个.

单例优势:(1)节省空间(只能创建一个对象)

(2)共享内存单元

弊端: 单例的空间在整个应用程序运行期间空间都不会回收. 会存在内存泄露问题, 他存在的意义在于解决特定的问题

.h

@interface Singleton : NSObject

//提供创建单例对象的便利构造器方法, 命名规范:以main shared standard defalut开头

+ (Singleton *)mainSignleton;

//存储输入框中的数据

@property (nonatomic, copy) NSString * data;

@end

.m

+ (Singleton *)mainSignleton

{

//加同步锁:

@synchronized (self){

//静态变量

//初始化一次

static Singleton * singleton = nil;

if (singleton == nil) {

singleton = [[Singleton alloc] init] ;

}

return singleton;

}

}

时间: 2024-11-05 16:28:21

界面间的传值的相关文章

界面间传值

- (void)viewWillDisappear:(BOOL)animated{    ///界面间传值:第二种情况:将后一个界面的值传到前一个界面 (从后往前传)    // 方法: 代理初值    // 步骤:  1.定义协议. 在后面类中定义协议(传值的方法定义协议)    //2. 给后面类添加一个代理属性    //3.将代理设置为前一个界面的对象让它服从协议,实现方法(传值方法就变成了,协议中的方法),    //4.在后面类中通过代理,调用该传值方法.              

界面间传值的方式

属性传值: 属性传值适用于从前往后传值. 代理传值:适用于从后往前传值. 单例传值: 适合于从前往后传,从后往前传都可以, 但是内存空间不会被释放直到应用程序结束 NSUserDefaults:数据持久化的一种方式,数据可以长久的存储,存到本地然后再从本地获取.通知:通知的使用需要注册通知,以及发送通知. block: 需要定义 block,当 block 进行回调时将值传给其他界面,适用于从后往前 初始化方法:给第二个界面写一个初始化方法,当进入下一界面时,将第一个界面的值作为初始化方法的参数

委托:Winform实现窗体间的传值

软件界面如上所示:点击接收窗体实现打开发送窗体,发送窗体点击“发送”,即可发送到接收窗体,可以实现窗体间的传值. 接收窗体的主要代码: /// <summary> /// 打开发送窗体 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOpen_Click(o

MVC中Controller间的传值、Controller到View的传值方法

从做了考试以来,和别人也进行了交流,发现系统内部的传值算是一个比较费劲的问题.这篇博客讲解两种传值的情况--MVC中Controller间的传值,这里包括了第二种Controller到View的传值. 示例:我有两个Controller:C1和C2,我想把C1中的课程实体的课程ID传到C2中.方案是先把C1中的课程ID传到C2对应的View页面的地址栏中,然后C2从自己的View页面中获取. 来看代码: //下面是一个easyUI的表格,执行ScoringManagementCotroller下

B/S结构中页面间的传值

常见的页面间的传值有session,cookie,application,server.transfer(),queryString,今天主要记录一下server.transfer()的用法. 从A页面Transfer到B页面时,就可以在B页面通过Context.Handler获得A页面的一个类的实例,从而在B调用A的各个成员对象. 下面的示例建立了AA和BB, 通过Server.Transfer()方法演示在BB中读取AA的文本框.读取属性.通过Context传值.调用AA的方法等. AA上放

父页面与子页面间相互传值

父页面与子页面间相互传值 1.子页面又父页面通过window.open弹出 子页面要向父页面传值,只要在document前面加window.opener即可.如:父页面: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

用block实现两个页面间的传值

第二个view声明一个block属性: @property (nonatomic, copy) void(^doTransferMsg)(NSString *_msg); 然后传值方法里检查block是不是存在 - (IBAction)transferText:(UIButton *)sender { if (_doTransferMsg) { _doTransferMsg(@"hello there"); _doTransferMsg = nil; } [self.navigatio

HTML5 Web存储 页面间进行传值

在实际使用过程中,经常会遇到需要在页面间进行传值的情况,最初设想一定需要后端才能进行数据的存储和读取,或者在本地使用一个cookie进行保存,直到了解到HTML5 Web存储 使用HTML5的新特性可以在本地存储用户的浏览数据.Web 存储需要更加的安全与快速. 这些数据不会被保存在服务器上,数据只用于用户请求网站数据上.它也可以存储大量的数据,而不影响网站的性能. 数据以“键/值”对存在, web网页的数据只允许该网页访问使用 方法: localStorage 和 sessionStorage

vue中父子组件主动获取值 父组件向子件间的传值

父组件主动获取子组件的数据和方法: 1.调用子组件的时候定义一个ref <v-header ref='header'></header> 2.在父组件里面通过 this.$refs.header.属性 this.$refs.header.方法 子组件主动获取父组件的数据和方法 this.$parent.数据 this.$parent.方法 父组件向子件间的传值 1.父组件调用子组件的时候 绑定动态属性 2.在子组件里通过props接受父组件传过来的数据 原文地址:https://w