文档章节

第04天实战技术(02):block开发使用场景(代理传值)

宇鸿165
 宇鸿165
发布于 2017/03/29 10:54
字数 372
阅读 7
收藏 0

#####一、02-block开发使用场景(代理传值)

传值的两种情况:
    顺传 : 给需要传值的对象,直接定义属性就能传值
    逆传 : 用代理,block ,就是利用block去代替代理
--
    传值 : 1.主要能拿到对方就能传值
  • 1.使用代理实现逆传 什么是逆传: A界面跳转到B界面,B界面做了某些操作,把值回传给A界面,这叫做逆传。

A界面:ViewController

/*
    传值 : 1.主要能拿到对方就能传值
 
    顺传 : 给需要传值的对象,直接定义属性就能传值
    逆传 : 用代理,block ,就是利用block去代替代理
 */

#import "ViewController.h"
#import "ModalViewController.h"
@interface ViewController ()<ModalViewControllerDelegate>

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    
    ModalViewController *mVC = [[ModalViewController alloc]init];
    mVC.delegate = self;
    // 跳转
    [self presentViewController:mVC animated:YES completion:nil];
    
}

- (void)modalViewController:(ModalViewController *)mVC sendValue:(NSString *)value
{
    NSLog(@"-- %@",value);
}

@end

B界面:ModalViewController

#import <UIKit/UIKit.h>

// 声明该类
@class ModalViewController;

// 代理协议
@protocol ModalViewControllerDelegate <NSObject>

// 可选
@optional
// 设计方法 : 想要代理做什么事情
// 代理方法 : 一般是以自己开头
- (void)modalViewController:(ModalViewController *)mVC sendValue:(NSString *)value;

@end


@interface ModalViewController : UIViewController
// 代理属性
// 必须遵守 ModalViewControllerDelegate 这个协议才能成为我的代理
@property (nonatomic,weak) id<ModalViewControllerDelegate> delegate;


@end

>>>

#import "ModalViewController.h"

@interface ModalViewController ()

@end

@implementation ModalViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor brownColor];
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    // 传值给 ViewController
    
    // 判断代理没有实现该方法
    if ([_delegate respondsToSelector:@selector(modalViewController:sendValue:)]) {
        [_delegate modalViewController:self sendValue:@"123"];
    }
}

@end

© 著作权归作者所有

宇鸿165
粉丝 1
博文 919
码字总数 368963
作品 0
广州
私信 提问
iOS深入学习(Block全面分析)

本文翻译自苹果的文档,有删减,也有添加自己的理解部分。 如果有Block语法不懂的,可以参考fuckingblocksyntax,里面对于Block 为了方便对比,下面的代码我假设是写在ViewController子类中的...

召唤攻城狮
2014/05/24
101K
26
Vue 2.x 实战之后台管理系统开发(二)

1. 导语 承接上文:Vue 2.x 实战之后台管理系统开发(一) 在上一篇文章中,我详细叙述了如何创建项目框架和引入各种后台常用插件,做好这些准备工作后,我们就可以着手进行页面的开发了。在...

小和子茶
2018/07/17
0
0
JAVA区块链项目实战视频课程

课程介绍 全国首套,基于java的区块链实战教程。目的是让更多的java编程者了解区块链,掌握区块链开发。 1、区块链理论:以node.js例子区块链原理有深刻理解; 2、区块链java实战:深刻理解区...

小红牛
2018/09/14
0
0
iOS最常用的8中传值方式,代理顺传如何实现?

一、顺传: 1 初始化传值 2 属性传值 二、顺传逆传都行: 3 单例传值 4 代理传值 5 通知传值 6 block传值 7 NSUserDefault传值 三、8 AppDelegate传值 纠结了一下,测试了一番让达不到顺传的...

iOS之家
2016/06/08
0
0
【iOS】代理传值与块代码传值

主线程与子线程经常需要进行数据的传递,不同的类之间,不同的控制器之间都需要。 而且经常需要监听一个动作的完成,而后才去做相应事件。(代理是一对一的关系)。 一、代理传值 代理是一种...

xn4545945
2014/07/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 当你简历注水但还是找到了工作

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :#今日歌曲推荐# 分享成龙的单曲《男儿当自强》。 《男儿当自强》- 成龙 手机党少年们想听歌,请使劲儿戳(这里) @hxg2016 :刚在...

小小编辑
今天
2.7K
21
靠写代码赚钱的一些门路

作者 @mezod 译者 @josephchang10 如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。 今天给大家分享一个精彩的 GitHub 库,这个库整理...

高级农民工
昨天
3
0
用好项目管理工具,人人都可以成为项目经理

现在市面上的项目管理工具越来越多了,但是大多数都是一些协同工具或轻量项目管理工具。如果是多团队、跨部门使用或者企业级的项目管理,从管理思想到工具运用,需要适应企业的业务流程体系,...

cs平台
昨天
12
0
只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
69
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
32
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部