iPhone使用委托在不同的窗口之间传递数据

转载 2012年03月22日 10:51:09

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

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

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

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

4、通过Delegate来传递

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

比如: 在窗口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;
//http://stackoverflow.com/questions/6317631/obj-c-synthesize

-(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]; 
}

@end

相关文章推荐

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

在IOS里两个UIView窗口之间传递参数方法有很多,比如  1.使用SharedApplication,定义一个变量来传递.  2.使用文件,或者NSUserdefault来传递 ...

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

在IOS里两个UIView窗口之间传递参数方法有很多,比如  1.使用SharedApplication,定义一个变量来传递.  2.使用文件,或者NSUserdefault来传递 ...

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

在IOS里两个UIView窗口之间传递参数方法有很多,比如  1.使用SharedApplication,定义一个变量来传递. 2.使用文件,或者NSUserdefault来传递 3.通过一个单例的c...

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

在IOS里两个UIView窗口之间传递参数方法有很多,比如 1.使用SharedApplication,定义一个变量来传递. 2.使用文件,或者NSUserdefault来传递 3.通过一...

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

在IOS里两个UIView窗口之间传递参数方法有很多,比如   1.使用SharedApplication,定义一个变量来传递.  2.使用文件,或者NSUserdefault来传递  3.通过...

【转】IOS开发使用委托delegate在不同窗口之间传递数据

在IOS里两个UIView窗口之间传递参数方法有很多,比如  1.使用SharedApplication,定义一个变量来传递.  2.使用文件,或者NSUserdefault来传递  3.通过一...

IOS开发使用委托delegate在不同窗口之间传递数据

IOS开发使用委托delegate在不同窗口之间传递数据 本文转自:http://mobile.51cto.com/iphone-284116.htm IOS开发使用委托delegate在不同窗口...

窗口之间传递数据.rar

  • 2008-09-01 17:14
  • 33KB
  • 下载

Android笔记三.不同Activity之间的传递数据(Bundle对象的使用)

不同Activity之间的传递数据 Jiangdg_VIP http://blog.csdn.net/u012637501 一、API类说明 1.Bundle类-实现数据传递 (1)...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)