码迷,mamicode.com
首页 > 移动开发 > 详细

IOS代理模式

时间:2015-04-07 19:36:12      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

  代理困扰了很久,一直看概念,看网上的博客发现不是自己要的!我想要的是一个代理流程。

  第一个界面的名字,姑且我们叫apple吧!第二个界面的名字叫banana;在banana中的值想传给apple,这时候就要用到代理了,可以用其他的传值吗?可以,不过我们先研究代理传值。

  banana传值,banana就要找个代理。

  一.banana

  第一步:

      在banana.h中定义代理

  @protocol BananaDelegate <NSObject>

  // 声明一个代理方法:默认是@require,必须实现代理方法;@optional,非必须实现。

  - (void)bananaDelegate:(BananaViewController *)controller bananaModel:(BananaModel *)model;

  @end

  @interface BananaViewController : UIViewController

  @property (nonatomic, strong) id<BananaDelegate> delegate;

  @end

  第二步:

  在banana.m中返回apple中需要的代码  

  - (IBAction)BackButtonClicked:(id)sender

  {

      BananaModel *m = [[BananaModel alloc] init];

      // 给m赋值吧!假如:

    m.name = @"张三";

    // 判断是apple中否实现代理方法 

      if([self.delegate respondsToSelector:@selector(bananaDelegate:bananaModel:)])

      {

          [self.delegate bananaDelegate:self bananaModel:m];

      }

      [self.navigationController popViewControllerAnimated:YES];

  }

  二.apple 

  第一步:

  @interface AppleViewController ()<BananaDelegate>

  @end

  第二步:

  设置代理

  controller.delegate = self;

  第三步:

  实现代理方法

  - (void)bananaDelegate:(BananaViewController *)controller bananaModel:(BananaModel *)model

  {

    //  这是得到传来的值,你完成你想要的任务吧!
  }

  只是看没有啥用,多写几遍直至熟练!然后,就能领会到了!

IOS代理模式

标签:

原文地址:http://www.cnblogs.com/ylzx/p/4398903.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!