绑定支付宝首页和填写资料绑定页之间,

需要在填写页填写好手机号,验证码等,点击确认绑定后跳回到绑定首页。并且绑定按钮变为已绑定按钮暂未绑定label变为输入的支付宝账号。并且点击已绑定按钮会跳转到解绑界面。

整个流程在app上展示为

一、在传信息的controller内(即填写页的controller内)创建Block:

fillAlipayViewController.h中:

// 创建block
typedef void(^bindAlipayBlock)(NSDictionary *bindDict);// 监听返回的绑定状态
@property (nonatomic, copy) bindAlipayBlock returnBlock;
复制代码
  • 这里解释一下创建语句:

    • 我们可以通过关键字typedef来为block起类型名称,然后直接通过类型名进行block的创建;
    • void为返回值;
    • ^bindAlipayBlock为block名称;
    • NSDictionary *bindDict为参数。
  • 因为需要传两个值(支付宝号和绑定状态),所以创建类型是字典,命名也要明确Block是什么类型:

(NSDictionary *bindDict)
复制代码

fillAlipayViewController.m中:

需创建全局变量:_alipayAccount即为监听输入的支付宝账号全局变量。支付宝账号为字符串:

{NSString *_alipayAccount;//支付宝账号
}
复制代码

在输入完成后点击确认的点击事件中,确定若响应Block实例,则传出字典,字典内写相应的键值,(即将绑定YES状态和支付宝账号传出去):

if (self.returnBlock){self.returnBlock(@{@"isBind":@"YES",@"alipayAccount":self->_alipayAccount});
}
复制代码

接着下面是返回上一页绑定首页语句:

[self.navigationController popViewControllerAnimated:YES];
复制代码

二、在接收信号的controller内(即绑定首页的controller内):

bindAlipayViewController.m中:

创建对应全局变量来接收值:

{BOOL _isBind;//绑定状态NSString *_bindAlipayAccount;//绑定的支付宝账号
}复制代码

跳转方法的实现中:

- (void)jumpToControllerWithType:(NSString *)type{if([type intValue]== 1){ABFillAlipayViewController *vc=[[ABFillAlipayViewController alloc]init];WS(weakself);vc.returnBlock = ^(NSDictionary *bindDict) {NSLog(@"返回了~");// 绑定状态判断self->_isBind = [bindDict[@"isBind"] isEqualToString:@"YES"]?YES:NO;// 支付宝账号赋值self->_bindAlipayAccount = bindDict[@"alipayAccount"];
//            刷新tableView中数据[weakself.tableView reloadData];};[self.navigationController pushViewController:vc animated:YES];}else if([type intValue]== 2){[self.navigationController pushViewController:[[ABRemoveBindAlipayViewController alloc]init] animated:YES];}
}
复制代码

_isBind做判断,等于字符串@“YES”的时候为YES,否则NO。

_bindalipayAccount就等于字典传过来的值。

因为绑定首页使用tableView画的,所以在cell内容中判断,若绑定成功,则做相应改变赋值:

if (_isBind == YES) {// 绑定按钮隐藏,显示已绑定按钮cell.bindButton.hidden = YES;cell.boundButton.hidden = NO;// 显示支付宝账号cell.subLabel.text = _bindPhoneNumber; }else{// 绑定按钮显示,隐藏已绑定按钮cell.bindButton.hidden = NO;cell.boundButton.hidden = YES;// 显示“暂未绑定账号”cell.subLabel.text = @“暂未绑定账号”;}
复制代码

作者介绍

  • 李鸿:广州芦苇科技 APP 团队 iOS 开发工程师

内推信息

  • 我们正在招募小伙伴,有兴趣的小伙伴可以把简历发到 app@talkmoney.cn,备注:来自掘金社区
  • 详情可以戳这里--> 广州芦苇信息科技

iOS初级开发笔记:Block回调,实现简单的绑定支付宝逻辑相关推荐

  1. Android初级开发笔记-- activity启动模式的学习(1)

    第一次学习Android中一个很重要的概念,启动模式.文章记录的也只是一些入门知识,随着学习的深入还会有activity启动模式的学习(2)和(3). 下面分三个小点说一下对启动模式的理解区别以及如何 ...

  2. iOS工程开发笔记二

    iOS工程开发笔记<二> 在Xcode 4, 5的模板工程中可以看到Precompile Prefix Header,但是在Xcode 6被去除了. Xcode 6去掉Precompile ...

  3. IOS 初级开发入门教程(四)基础控件使用小练习

    前言 看完前面3章的内容,基本对IOS开发有一些认识了,这章我们开始动手去实践做点小练习,学习如何创建并设置标签和按钮(Label & Button)的相关属性,以及通过一个交互式的案例演示动 ...

  4. iOS很重要的 block回调

    刚刚进入ios开发行业,发现开发中要用到大量的block回调,由此可见它的重要性.学习它之前我也是网上找的资料,推荐这篇文章http://blog.csdn.net/mobanchengshuang/ ...

  5. JNI开发笔记(四)--实现一个简单的JNI工程并生成so库

    实现一个简单的JNI工程并生成so库 引 前言 1. 编写C/h文件并添加到工程 2. 修改CmakeLists.txt文件 3. 编写native-lib.cpp文件 4. 在MainActivit ...

  6. ios学习笔记block回调的应用(一个简单的例子)

    一.什么是Blocks       Block是一个C级别的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,但是其运行需要编译器和运行时支持,从ios4.0开始就很好的支持Block. 二 ...

  7. iOS初级开发学习笔记:APP生命周期的学习总结

    我们平常使用APP时,一般人都会知道有:简单的正在使用状态:通过home键等方式离开应用,但是不关闭应用,即后台状态:以及调出后台程序管理后向上滑动将应用"杀死",三种状态.而我们 ...

  8. iOS初级开发学习笔记:微信充值

    相关教程:微信支付开发流程 一直到设置URL Scheme,均按照步骤进行.下面的内容将作为笔记着重介绍: 注册APPID步骤1-3: 在AppDelegate.m中 1.导入#import &quo ...

  9. 【 Visual C++】游戏开发笔记之二——最简单的DirectX,vc窗口的编写

    笔记一中我们介绍了如何用代码创建空的win32窗口,然而创建空的win32窗口只完成了一半的工作,接下来要做的工作是设置Direct3D,从而可以在屏幕上渲染图形. Direct3D要调用很多函数才能 ...

最新文章

  1. 5 用python进行OpenCV实战之图像变换2(旋转)
  2. linux gcc 链接静态库的几种方式
  3. swap交换空间(当内存不足时)
  4. ipython安装_IPython 它不香吗?
  5. P4062 [Code+#1]Yazid 的新生舞会(区间绝对众数+分治/树状数组维护高维前缀和)
  6. 3位高二女生用大数据成功预测地铁出站人数 | 00后正在抛弃你
  7. FlvDownloader升级版DownloaderPlus发布
  8. 矩阵分析——第一章 线形空间和线性变换
  9. Java8 FlatMap的使用
  10. activiti bpmn 安装不上_OTC弧焊工作站问题集-Win7 64位系统安装Step7 MicroWIN
  11. Android科大讯飞语音识别源码及API下载
  12. mongodb、mysql、redis的性能对比
  13. 人像处理:不要用减淡工具了!用柔光叠加去擦!加深也不如正片叠底
  14. PLC模拟量控制的3个要求
  15. Ultra Fractal(分形艺术软件)官方正式版V6.04 | 含ultra fractal教程 | 最新ultra fractal下载
  16. 为什么计算机二级查成绩显示验证码错误,我明明输入的是正确的验证码,为何电脑总显示验证码错误呢?...
  17. linux 下载ftp 命令,在Linux命令行中安装及使用FTP客户端的方法
  18. 2008 r2 server sql 中文版补丁_sql server 2008 r2 sp4下载-SQL Server 2008 sp4补丁3264位 简体中文完整版-东坡下载...
  19. win10添加打印机--无法访问指定设备,路径或文件。。
  20. C++面试题总结,一篇就够了

热门文章

  1. (ZT)大学里如何学习 ?
  2. Stack(栈)和Heap(堆)的区别
  3. 【线段树】【FeyatCup】——2.法法塔的奖励
  4. LeetCode N-Queens
  5. 【BZOJ1022】小约翰的游戏(博弈论)
  6. python中的引用、浅拷贝和深拷贝
  7. codeforces 450B. Jzzhu and Sequences 解题报告
  8. c# 文件IO操作 StreamReader StreamWriter Split 使用
  9. 《Python核心编程》第二版第36页第二章练习 续一 -Python核心编程答案-自己做的-...
  10. angularJS 路由加载js controller 未定义 解决方案