ios 页面跳转之间传递数据----通过delegate

主要参考了这篇博客http://mobile.51cto.com/iphone-284116.htm

主要用到了,两个类,一个delegate

a类,调用b类,当b类执行之后,需要把一个数据传递给a类,a类把这个数据显示出来。

1.delegate,就这一个头文件就足够了。在类中去实现这个代理方法

#import <Foundation/Foundation.h>

@protocol UIViewPassValueDelegate

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

一旦某个类,实现了这个回调函数,这个类就会获取当前的value数据。因此,接收数据的类一定实现一个回调函数。对于当前项目就是passValue

@end

2.第一个页面

.h文件

#import <UIKit/UIKit.h>

#import "UIViewPassValueDelegate.h"

#import "ValueInputView.h"

 @interface DelegateSampleViewController : UIViewController<UIViewPassValueDelegate>

{

    UITextField *_value;

}

@property (strongnonatomicIBOutletUITextField *value;

- (IBAction)buttonClick:(id)sender;

@end

.m文件

#import "DelegateSampleViewController.h"

 @implementation DelegateSampleViewController

@synthesize value = _value;

 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

    }

    returnself;

}

 - (void)viewDidLoad

{

    [superviewDidLoad];

}

 - (void)viewDidUnload

{

    [self setValue:nil];

    [superviewDidUnload];

}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

    return (interfaceOrientation == UIInterfaceOrientationPortrait);

}

 

- (IBAction)buttonClick:(id)sender 

{

    ValueInputView* valueView = [[ValueInputViewallocinit];

    valueView.delegate = self;

    [selfsetModalTransitionStyle:UIModalTransitionStyleCoverVertical];

    [selfpresentModalViewController:valueView animated:YES];

}

 -(void)passValue:(NSString *)value

{

   self.value.text = value;

   NSLog(@"the get value is %@",value);

}

@end

3.第二个类:

.h文件

#import <UIKit/UIKit.h>

#import "UIViewPassValueDelegate.h"

 @interface ValueInputView : UIViewController

{

    NSObject<UIViewPassValueDelegate>* delegate;

    UITextField* _value;

}

@property (retainnonatomicIBOutletUITextField *value;

@property (nonatomic,retainNSObject<UIViewPassValueDelegate>* delegate;

- (IBAction)buttonClick:(id)sender;

@end

.m文件

#import "ValueInputView.h"

 

@implementation ValueInputView

@synthesize value=_value;

@synthesize delegate;

 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {

        // Custom initialization

    }

    returnself;

}

 - (void)viewDidLoad

{

    [superviewDidLoad];

}

 - (void)viewDidUnload

{

   [self setValue:nil];

   [superviewDidUnload];

}

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

    return (interfaceOrientation == UIInterfaceOrientationPortrait);

}

- (IBAction)buttonClick:(id)sender {

    [delegatepassValue:self.value.text];

    NSLog(@"self.value.text is %@",self.value.text);

    [selfdismissModalViewControllerAnimated:YES];

}

@end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值