织梦CMS - 轻松建站从此开始!

罗索

IOS委托,实现两个UIView相互传值

落鹤生 发布于 2013-01-15 11:01 点击:次 
detegate委托在IOS中是一种随处可见的模式,通俗的说,就是我把想做的某件事委托给其他人去做,就好像Java中的接口一样,我只用定义方法的实现,不用过问实现的过程。
TAG:

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

Demo下载:http://bbs.rosoo.net/thread-14748-1-1.html

  1. #import <Foundation/Foundation.h> 
  2. @protocol TestDetegate <NSObject> 
  3. - (void)setValue:(NSString *)string; 
  4. @end 

在委托中,并没有实现setValue这个方法的内容,而在下面的AView.m中实现这个方法

  1. // 实现TestDetegate的setValue方法 
  2. - (void)setValue:(NSString *)string 
  3.     aTextLabel.text = string; 
  4.  
  5. - (IBAction)clickPush:(id)sender 
  6.     BView *bview = [[BView alloc] initWithNibName:@"BView" bundle:nil]; 
  7.     bview.text = @"AView"
  8.     // 设置委托 
  9.    bview.detegate = self; 
  10.     [self.navigationController pushViewController:bview animated:YES]; 

在BView.h中

  1. #import <UIKit/UIKit.h> 
  2. #import "TestDetegate.h" 
  3.  
  4. @interface BView : UIViewController 
  5. @property (nonatomic, retain) IBOutlet UILabel *bTextLabel; 
  6. @property (nonatomic, assign) id <TestDetegate> detegate; 
  7. @property (nonatomic, retain) NSString *text; 
  8. - (IBAction)clickBack:(id)sender; 
  9.  
  10. @end 

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

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

(qq5306546)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201301/16462.html]
本文出处:CSDN博客 作者:qq5306546 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容