美文网首页
用协议代理实现两个界面传值

用协议代理实现两个界面传值

作者: _桃夭大人_ | 来源:发表于2015-06-30 08:30 被阅读513次

界面二的.m文件

// 制定协议

import@protocol WTwoViewControllerDelegate

// 声明协议方法

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

 @end 

@interface WTwoViewController : UIViewController 

// 声明一个Block类型的属性

@property (nonatomic, unsafe_unretained) iddelegate; 

// 声明一个UITextField类型的全局变量*txtValue

@property (nonatomic, strong) IBOutlet UITextField *txtValue; 

// 声明Button的点击事件方法

- (IBAction)pressChange:(id)sender; 

@end

// 界面二的.h文件

 - (IBAction)pressChange:(id)sender 方法中把代理派发出去,顺便把窗口给销毁,

代码如下:- (IBAction)pressChange:(id)sender {   

// 代理传值

  [self.delegate changeValue:self.txtValue.text];  

  [self dismissViewControllerAnimated:YES completion:nil]; 

界面二中的设置已经完成,接下要在界面一中调用界面二的头文件,并实现界面二协议中所制定的方法。

首先在WViewController.h中实现代理,

代码如下:

#import "WTwoViewController.h" // 包含头文件

// 声明方法

@interface WViewController : UIViewController

@property (strong, nonatomic) IBOutlet UILabel *lblValue;

- (IBAction)pressCasting:(id)sender;

@end

其在WViewController.m的 

- (IBAction)pressCasting:(id)sender 方法中调用WTwoViewController,

并设置代理的回调方法,代码如下:

- (IBAction)pressCasting:(id)sender {

WTwoViewController *controller = [[WTwoViewController alloc]initWithNibName:@"WTwoViewController" bundle:nil];

controller.delegate = self;

[self presentViewController:controller animated:YES completion:nil];

}

- (void)changeValue:(NSString *)value{

// 改变UILabel的值

self.lblValue.text = value;

}

相关文章

  • Swift 代理传值方式

    协议传值 协议传值,主要用于代理模式。假设我们要实现从详情界面传值到主界面这一需求,首先,我们需要拟定一份协议,为...

  • 界面传值

    1正向传值 2反向传值(代理) 在b界面 :1声明协议和方法(方法不实现)2定义代理属性 通知代理 a面遵守协议。...

  • iOS中界面传值的几种方式

    1.属性传值 属性传值适用于顺序传值,从前面的界面传值给后面的界面。 2.代理传值 用代理的方式实现界面间传值稍微...

  • 用协议代理实现两个界面传值

    界面二的.m文件 // 制定协议 import@protocol WTwoViewControllerDelega...

  • 界面之间的通信知识点总结

    界面通信的三种方法: 属性传值:将第一页页面的值传给第二个页面。 代理传值:实现界面传值要6步: 声明协议和协议的...

  • iOS简单block的传值

    一直对block传值理解不深,觉得很复杂,所有遇见传值的问题大多数还是用代理传值,但是代理传值还得注册协议实现代理...

  • ios-代理的基本使用

    代理的基本用法 界面由A->B 再由B->A 的时候,需要B的值传值给A以下是用代理的方法实现, 代理和传值是先...

  • swift中的协议代理传值

    协议代理传值一般使用在下级界面往上级界面传值的情况,这里将上级界面设定为A界面,下级界面设定为B界面。传值的具体操...

  • Objective-C界面传值(二):协议传值

    协议传值 协议传值是利用协议的特性来实现界面传值的一种方法.我们把要传值得页面当作协议声明者,把接收值得页面作为代...

  • iOS开发-代理传值

    代理传值的步骤: 需要传值的界面操作步骤: 1.声明代理协议 2.声明代理方法 3.声明一个属性,用来表示当前类对...

网友评论

      本文标题:用协议代理实现两个界面传值

      本文链接:https://www.haomeiwen.com/subject/dibeqttx.html