博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS委托,实现两个UIView相互传值
阅读量:6412 次
发布时间:2019-06-23

本文共 1024 字,大约阅读时间需要 3 分钟。

  hot3.png

detegate委托在IOS中是一种随处可见的模式,通俗的说,就是我把想做的某件事委托给其他人去做,就好像Java中的接口一样,我只用定义方法的实现,不用过问实现的过程。

Demo下载:

创建一个委托并声明一个方法

#import 
@protocol TestDetegate
- (void)setValue:(NSString *)string;@end
在委托中,并没有实现setValue这个方法的内容,而在下面的AView.m中实现这个方法
// 实现TestDetegate的setValue方法- (void)setValue:(NSString *)string{    aTextLabel.text = string;}- (IBAction)clickPush:(id)sender{    BView *bview = [[BView alloc] initWithNibName:@"BView" bundle:nil];    bview.text = @"AView";    // 设置委托    bview.detegate = self;    [self.navigationController pushViewController:bview animated:YES];}
在BView.h中
#import 
#import "TestDetegate.h"@interface BView : UIViewController@property (nonatomic, retain) IBOutlet UILabel *bTextLabel;@property (nonatomic, assign) id
detegate;@property (nonatomic, retain) NSString *text;- (IBAction)clickBack:(id)sender;@end

当点击Push这个Button的时候,设置BView的Label为AView,完成了由父窗口向子窗口传值

当点击Back后返回AView时,通过委托改变AView的label值,实现了子窗口到父窗口的传值

转载于:https://my.oschina.net/wbei/blog/89325

你可能感兴趣的文章
判断是否为数字方法
查看>>
[翻译] EF Core in Action 关于这本书
查看>>
js Uncaught TypeError: undefined is not a function
查看>>
数据库存储引擎
查看>>
[2019.2.13]BZOJ4318 OSU!
查看>>
版本号带两个小数点的,如何比较大小?( NSStringCompareOptions )
查看>>
QCustomplot使用分享(三) 图
查看>>
什么是java?
查看>>
WPF路径动画(动态逆向动画)
查看>>
Low Level Reader Protocol (LLRP) 简介
查看>>
[Micropython]TPYBoard v10x NRF24L01无线通讯模块使用教程
查看>>
mysql中show processlist过滤和杀死线程
查看>>
最新Sublime Text 2 激活 汉化
查看>>
基础数据类型之字典
查看>>
第七次作业
查看>>
Oracle中NVARCHAR2与VARCHAR2的区别
查看>>
php debug
查看>>
Ubuntu构建LVS+Keepalived高可用负载均衡集群【生产环境部署】
查看>>
lvm实现快速备份文件及数据库,lvm快照原理
查看>>
设计模式之Factory Method(工厂方法)
查看>>