IOS委托,实现两个UIView相互传值
转自:http://my.oschina.net/wbei/blog/89325
detegate委托在IOS中是一种随处可见的模式,通俗的说,就是我把想做的某件事委托给其他人去做,就好像Java中的接口一样,我只用定义方法的实现,不用过问实现的过程。
Demo下载:http://pan.baidu.com/share/link?shareid=131942&uk=101519637
创建一个委托并声明一个方法
1 |
#import <Foundation/Foundation.h> |
2 |
@protocol TestDetegate <NSObject> |
3 |
- (void)setValue:(NSString *)string; |
4 |
@end |
在委托中,并没有实现setValue这个方法的内容,而在下面的AView.m中实现这个方法
01 |
// 实现TestDetegate的setValue方法 |
02 |
- (void)setValue:(NSString *)string |
03 |
{ |
04 |
aTextLabel.text = string; |
05 |
} |
06 |
07 |
- (IBAction)clickPush:(id)sender |
08 |
{ |
09 |
BView *bview = [[BView alloc] initWithNibName:@"BView" bundle:nil]; |
10 |
bview.text = @"AView"; |
11 |
// 设置委托 |
12 |
bview.detegate = self; |
13 |
[self.navigationController pushViewController:bview animated:YES]; |
14 |
} |
在BView.h中
01 |
#import <UIKit/UIKit.h> |
02 |
#import "TestDetegate.h" |
03 |
04 |
@interface BView : UIViewController |
05 |
@property (nonatomic, retain) IBOutlet UILabel *bTextLabel; |
06 |
@property (nonatomic, assign) id <TestDetegate> detegate; |
07 |
@property (nonatomic, retain) NSString *text; |
08 |
- (IBAction)clickBack:(id)sender; |
09 |
10 |
@end |
当点击Push这个Button的时候,设置BView的Label为AView,完成了由父窗口向子窗口传值

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


IOS委托,实现两个UIView相互传值的更多相关文章
- c#实现两个窗体相互传值
本文转自:https://mp.csdn.net/postedit/100058721 1.功能展示 有时需要将子界面的内容传递到父界面,方法有好几种.经常用的是通过委托实现.具体的效果如下: ...
- iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)
iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值) 使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: ...
- winform两个窗体之间传值(C#委托事件实现)
委托 定义一个委托,声明一个委托变量,然后让变量去做方法应该做的事. 委托是一个类型 事件是委托变量实现的 经典例子:两个winform窗体传值 定义两个窗体:form1和form2 form1上有一 ...
- C# WPF 通过委托实现多窗口间的传值
在使用WPF开发的时候就不免会遇到需要两个窗口间进行传值操作,当然多窗口间传值的方法有很多种,本文介绍的是使用委托实现多窗口间的传值. 在上代码之前呢,先简单介绍一下什么是C#中的委托(如果只想了解如 ...
- 使用Block在两个界面之间传值
首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面. 第 ...
- react-native页面之间的相互传值
react-native页面之间的相互传值 之前在自己学习react-native的时候,在页面跳转和传值问题上花了一段时间去网上搜索和查找资料,自己总结了两个方法.可以参考 https://blog ...
- 使用Delegate在两个ViewController之间传值
以下就实现了使用Delegate在两个ViewController之间传值,这种场景一般应用在进入子界面输入信息,完后要把输入的信息回传给前一个界面的情况,比如修改用户个人信息,点击修改进入修改界面, ...
- MVC中view和controller相互传值的方法
MVC项目中,在view层如果使用前台框架,框架中会有封装好的相互传值方法.但是,那些postdata[][]方法不一定能够满足功能需求,反而一些常用的传值方法可能会刚好解决它们的不足.总结如下: 一 ...
- Cocos Creator两个类相互引用(调用)
如果两个类相互引用,脚本加载阶段就会出现循环引用,循环引用将导致脚本加载出错:///////////Game.jsvar Item = require("Item");var Ga ...
随机推荐
- golang的缓冲channel和无缓冲channel的区别
话说golang的channel同步的定义真是让人无力吐槽,码农的用户体验就这么难搞么,超耐磨阿,无缓冲和缓冲居然有这么大区别....靠 转载一段网上的资料 --------------------- ...
- [转] 上级向的十个iOS面试问题
上级向的十个iOS面试问题 转自 http://onevcat.com/2013/04/ios-interview/ 不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术 ...
- Python学习 —— 阶段综合练习一
Python 阶段综合练习一 综合之前的函数.数据结构.流程控制等,做以下实例练习:(建议先不要看代码,自己先试着写:代码仅供参考,有多种实现方法) 1. 定义 is_Even 函数,传一 int 参 ...
- poj2186 Popular Cows 题解——S.B.S.
Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 29642 Accepted: 11996 De ...
- Javascript前端思维导图
思维导图小tips: 思维导图又叫心智图,是表达发射性思维的有效的图形思维工具 ,它简单却又极其有效,是一种革命性的思维工具.思维导图运用图文并重的技巧,把各级主题的关系用相互隶属与相关的层级图表现出 ...
- STM32F103 GU906B模块GPRS、短信收发、拨号等功能的实现
这个程序搞了我很久,尤其是对如何提高响应速度上,程序流程很简单,大概就是: 发送AT指令->等待模块响应->一旦响应了,立即返回,并处理掉. 这个程序不一定只能用在GU906上,程序框架在 ...
- [Javascript Crocks] Compose Functions for Reusability with the Maybe Type
We can dot-chain our way to great success with an instance of Maybe, but there are probably cases wh ...
- UI设计经常使用站点
前期:http://www.zcool.com.cn/ 中期:http://www.ui.cn/ 后期:https://dribbble.com/
- 安装Was liberty之步骤
安装文件下载:http://pan.baidu.com/s/1dDl8PuL 安装三大步骤:拷贝文件,安装VNC和安装WasLiberty 拷贝文件是将需要的文件InstalMgr1.6.2_LNX_ ...
- mysql5.5.15配置主从数据库
1.编辑主库的my.cnf 在[mysqld]下添加如下配置 server-i=1 #一般默认为1,不需要修改(一般都以ip的后两位为server-id,保证全局的一致) read-only=0#主库 ...