转自: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相互传值的更多相关文章

  1. c#实现两个窗体相互传值

    本文转自:https://mp.csdn.net/postedit/100058721 1.功能展示 有时需要将子界面的内容传递到父界面,方法有好几种.经常用的是通过委托实现.具体的效果如下: ​   ...

  2. iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)

    iOS开发:使用Block在两个界面之间传值(Block高级用法:Block传值)   使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: ...

  3. winform两个窗体之间传值(C#委托事件实现)

    委托 定义一个委托,声明一个委托变量,然后让变量去做方法应该做的事. 委托是一个类型 事件是委托变量实现的 经典例子:两个winform窗体传值 定义两个窗体:form1和form2 form1上有一 ...

  4. C# WPF 通过委托实现多窗口间的传值

    在使用WPF开发的时候就不免会遇到需要两个窗口间进行传值操作,当然多窗口间传值的方法有很多种,本文介绍的是使用委托实现多窗口间的传值. 在上代码之前呢,先简单介绍一下什么是C#中的委托(如果只想了解如 ...

  5. 使用Block在两个界面之间传值

    首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面. 第 ...

  6. react-native页面之间的相互传值

    react-native页面之间的相互传值 之前在自己学习react-native的时候,在页面跳转和传值问题上花了一段时间去网上搜索和查找资料,自己总结了两个方法.可以参考 https://blog ...

  7. 使用Delegate在两个ViewController之间传值

    以下就实现了使用Delegate在两个ViewController之间传值,这种场景一般应用在进入子界面输入信息,完后要把输入的信息回传给前一个界面的情况,比如修改用户个人信息,点击修改进入修改界面, ...

  8. MVC中view和controller相互传值的方法

    MVC项目中,在view层如果使用前台框架,框架中会有封装好的相互传值方法.但是,那些postdata[][]方法不一定能够满足功能需求,反而一些常用的传值方法可能会刚好解决它们的不足.总结如下: 一 ...

  9. Cocos Creator两个类相互引用(调用)

    如果两个类相互引用,脚本加载阶段就会出现循环引用,循环引用将导致脚本加载出错:///////////Game.jsvar Item = require("Item");var Ga ...

随机推荐

  1. 简单的python2.7基于bs4和requests的爬虫

    python的编码问题比较恶心. decode解码encode编码 在文件头设置 # -*- coding: utf-8 -*-让python使用utf8. # -*- coding: utf- -* ...

  2. ABC定制视图导航控制器

      ABCustomUINavigationController  ABC定制视图导航控制器   Subclass of UINavigationController for overwriting ...

  3. JAVA加密算法(DSA)

    DSA DSA-Digital Signature Algorithm 是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard). ...

  4. RxJava 中文文档

    https://mcxiaoke.gitbooks.io/rxdocs/content/Subject.html

  5. [Android 新特性] Android 4.3 Top 5新功能

    直播会上,Android 4.3不像Nexus 7那么Sexy,也没有Chromecast电视棒那样惹人注目,但它有许多强悍的新特点,下面来看看Top 5. 1. 权限配置 支持在一台终端设备上有多个 ...

  6. Unity的shader学习1

    先来看一段我们项目常见的Shader代码,这个是Vertex&Fragment shader,目前已经不常用了,不过还是适合我们理解一些基础知识和理解一些比较老的shader 代码.下次我们再 ...

  7. C#中 父类与子类相互强制转换之实验

    MSDN是很好,不过,有时需要自己动手实践一下,才能更好的理解和记住一些东西. 我看过很多技术文章,结果到用时,仍然是下不了手.似是而非的. 像上次写的“四舍六入五成双/四舍六入五留双/四舍六入五单双 ...

  8. SVN-如何删除 SVN 文件夹下面的小图标

    第一步:右键新建文本文件. 第二步:打开 并复制一下文件 到 新建文本文件. @echo on    color 2f    mode con: cols=80 lines=25    @REM    ...

  9. Elasticsearch 数据搜索篇

    curl 'localhost:9200/_cat/indices?v' health index pri rep docs.count docs.deleted store.size pri.sto ...

  10. 配置文件格式用哪个?文件夹+纯文本文件,XML,SQLite

    稍具规模的软件都会须要一个配置文件来支持软件的执行.眼下常见的配置文件格式有纯文本.XML.SQLite.自己定义二进制格式,怎样进行选择呢? 1 纯文本--永远不会失效的文件格式 文本化是传统Uni ...