iphone 使用委托(delegate)在不同的窗口之间传递数据

本文详细介绍了如何在iOS环境中利用Delegate方法实现不同UIView窗口间的参数传递,包括定义委托协议、在窗口间建立委托关系以及具体实现步骤。通过实例展示了在窗口1中打开窗口2,填入数字后回传给窗口1的过程。

在IOS里两个UIView窗口之间传递参数方法有很多,比如

1.使用SharedApplication,定义一个变量来传递.

2.使用文件,或者NSUserdefault来传递

3.通过一个单例的class来传递

4.通过Delegate来传递。

前面3种方法,暂且不说,这次主要学习如何使用通过Delegate的方法来在不同的UIView里传递数据 。

比如: 在窗口1中打开窗口2,然后在窗口2中填入一个数字,这个数字又回传给窗口1。

窗口1

窗口2

窗口2的结果传递给窗口1


1.首先定义个一委托UIViewPassValueDelegate用来传递值


@protocolUIViewPassValueDelegate

-(void)passValue:(NSString*)value;

@end


这个protocol 就是用来传递值

2.在窗口1的头文件里,声明delegate

#import<UIKit/UIKit.h>
#import
"UIViewPassValueDelegate.h"
@interfaceDelegateSampleViewController:UIViewController
<UIViewPassValueDelegate>
{
UITextField
*_value;
}
@property(nonatomic,retain)IBOutletUITextField
*value;

-(IBAction)buttonClick:(id)sender;

@end

并实现这个委托

-(void)passValue:(NSString*)value
{
self.value.text
=value;
NSLog(
@"thegetvalueis%@",value);
}

button的Click方法,打开窗口2,并将窗口2的delegate实现方法指向窗口1。

-(IBAction)buttonClick:(id)sender
{
ValueInputView
*valueView=[[ValueInputViewalloc]initWithNibName:@"ValueInputView"bundle:[NSBundlemainBundle]];
valueView.
delegate=self;
[selfsetModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[selfpresentModalViewController:valueViewanimated:YES];
}

第二个窗口的实现

.h 头文件

#import<UIKit/UIKit.h>
#import
"UIViewPassValueDelegate.h"

@interfaceValueInputView:UIViewController{

NSObject
<UIViewPassValueDelegate>*delegate;
UITextField
*_value;
}

@property(nonatomic,retain)IBOutletUITextField
*value;
@property(nonatomic,retain)NSObject
<UIViewPassValueDelegate>*delegate;

-(IBAction)buttonClick:(id)sender;

@end

.m实现文件

#import"ValueInputView.h"


@implementationValueInputView

@synthesize
delegate;
@synthesizevalue
=_value;
-(void)dealloc{
[self.valuerelease];
[superdealloc];
}

-(IBAction)buttonClick:(id)sender
{
[
delegatepassValue:self.value.text];
NSLog(
@"self.value.textis%@",self.value.text);
[selfdismissModalViewControllerAnimated:YES];

}
-(void)didReceiveMemoryWarning{
//Releasestheviewifitdoesn'thaveasuperview.
[superdidReceiveMemoryWarning];

//Releaseanycacheddata,images,etc.thataren'tinuse.
}

-(void)viewDidUnload{
[superviewDidUnload];
//Releaseanyretainedsubviewsofthemainview.
//e.g.self.myOutlet=nil;
}

/*
//OnlyoverridedrawRect:ifyouperformcustomdrawing.
//Anemptyimplementationadverselyaffectsperformanceduringanimation.
-(void)drawRect:(CGRect)rect{
//Drawingcode.
}
*/


@end
【电力系统】采用有源电力滤波器抑制谐波研究(Simulink仿真实现)内容概要:本文围绕电力系统中谐波抑制问题展开,重点研究采用有源电力滤波器(APF)进行谐波治理的方法,并通过Simulink搭建仿真模型验证其有效性。文中介绍了有源电力滤波器的工作原理,特别是基于同步旋转坐标系(SRF)算法的电流检测方法,实现对负载谐波电流的实时跟踪与补偿。仿真结果表明,该方法能够有效降低电网中的谐波含量,提升电能质量。此外,文档还提及多种相关电力系统仿真研究案例,涵盖微电网优化、无功补偿、储能配置等领域,体现出较强的技术综合性与工程应用背景。; 适合人群:具备电力系统基础知识和MATLAB/Simulink仿真能力的电气工程专业学生、研究人员及从事电能质量治理相关工作的工程技术人员。; 使用场景及目标:①掌握有源电力滤波器的基本结构与控制策略;②学习基于SRF算法的谐波电流检测方法;③利用Simulink构建APF仿真系统并分析其滤波性能;④为电能质量控制、电力电子装置设计等课题提供技术参考与实现思路。; 阅读建议:建议结合文中提到的Simulink仿真模型进行实践操作,重点关注SRF算法模块与电流控制环的设计细节,同时可参考提供的网盘资源获取完整代码与模型文件,便于复现实验结果并进一步拓展研究。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值