我以自己项目中的一个模块为例,首先有两个页面,第一个页面为显示城市页面,第二个页面为选择要使用block传的值(城市名)。

第一个页面中的显示控件:

//自定义左部定位视图

self.locView = [[LocationView alloc] initWithFrame:CGRectMake(0, 0, SCREENWIDTH/2-35, 25)];

self.locView.imgView.image = [UIImage imageNamed:@"around"];

UITapGestureRecognizer *tapGes = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(cityListView)];

[self.locView addGestureRecognizer:tapGes];

UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithCustomView:_locView];

self.navigationItem.leftBarButtonItem = leftButton;

第二个页面的选择页面:

首先要在.h文件中声明block代码块

typedef void(^ChangeCityBlock)(NSString *cityStr);

@interface CityListViewController : UIViewController{

ChangeCityBlock _sendBlock;

}

@property(nonatomic, copy) NSString *currentCity;

-(void)setSendBlock:(ChangeCityBlock)block;

-(ChangeCityBlock)sendBlock;

@end

到这里准备找工作已做好,下面是传值关键

当我们从第一个页面跳转至第二个页面时,我的代码如下,仅供参考:

//城市列表

-(void)cityListView{

CityListViewController *clVC = [[CityListViewController alloc] init];

[clVC setSendBlock:^(NSString *cityStr) {

_locView.cityLb.text = cityStr;

}];

clVC.currentCity = _locView.cityLb.text;

[self.navigationController pushViewController:clVC animated:YES];

}

接下来,要在第二个页面实现定义的block方法

-(void)setSendBlock:(ChangeCityBlock)block{

if (_sendBlock != block) {

_sendBlock = [block copy];

}

}

-(ChangeCityBlock)sendBlock{

return _sendBlock;

}

最后,当我们在第二个页面确定返回的值并返回第一个页面时,要触发一个方法,将要返回的值传入block代码中

-(void)blockReturnCity:(NSString *)city{

if (self.sendBlock) {

self.sendBlock(city);

}else{

NSLog(@"没有传入block");

}

[self goback];

}

以此即可将在第二个页面中确定的值传到第一个页面。

注:此次总结只是以为自己的iOS学习做备忘录为目的,在思路或是步骤顺序上若有混乱,请谅解!大家若有好的方法也请不吝赐教。

block 页面传值小结的更多相关文章

  1. iOS Block 页面传值

    为什么80%的码农都做不了架构师?>>>   直接上代码 1.定义block @interface TopTypeCollectionView : UIView @property ...

  2. 页面传值总结Block

    // AppDelegate.m // 页面传值总结 // // Created by qianfeng on 15/6/13. // Copyright (c) 2015年 qianfeng. Al ...

  3. iOS页面传值方式

    普遍传值方式如下: 1.委托delegate方式: 2.通知notification方式: 3.block方式: 4.UserDefault或者文件方式: 5.单例模式方式: 6.通过设置属性,实现页 ...

  4. ASP.NET MVC 5 Web编程5 -- 页面传值的方式

    本篇文章将讲述MVC的页面传值方式,具体包括:后端向前端传值(Controller向View传值):前端向后端传值(View向Controller传值):Action与Action之间的传值. 回顾 ...

  5. WebForm 页面传值

    一.使用Querystring Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象.如果你想传递一个安全性不是那么太重要或者是 ...

  6. Spring 向页面传值以及接受页面传过来的参数的方式

    来源于:http://www.cnblogs.com/liuhongfeng/p/4802013.html 一.从页面接收参数 Spring MVC接收请求提交的参数值的几种方法: 使用HttpSer ...

  7. ASP.NET页面传值不使用QueryString

    ASP.NET页面传值不使用QueryString   Asp.net中的页面传值方法: 1         Url传值 特点:主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址 ...

  8. artdialog4.1.7 中父页面给子页面传值

    artdialog4.1.7中父页面给子页面传值时看了一些网友的解决方法: 在父页面声明全局变量 var returnValue=“ ”,子页面用art.dialog.opener.returnVal ...

  9. webform页面传值和删除修改

    一.webform跨页面传值1.内置对象地址栏数据拼接 QueryString 优点:简单好用:速度快:不消耗服务器内存. 缺点:只能传字符串:保密性差(调转页面后在地址栏显示):长度有限.响应请求对 ...

随机推荐

  1. [译]学习IPython进行交互式计算和数据可视化(三)

    第二章 在本章中,我们将详细学习IPython相对以Python控制台带来的多种改进.特别的,我们将会进行下面的几个任务: 从IPython中使用系统shell以在shell和Python之间进行强大 ...

  2. 【转】同一台Windows机器中启动多个Memcached服务

    上一篇介绍了Memcached的安装,但是如果手头上只有一台机器,又想做多节点测试咋办? 这就需要在一台机器上启动多个Memcached服务了. 假设Memcached在如下目录:C:\memcach ...

  3. UEditor的使用

    一.引用CSS和JS: <meta http-equiv="Content-Type" content="text/html;charset=utf-8" ...

  4. 【iOS】配置和使用静态库

    上一篇 我们演示了了如何创建自己的静态库,最终生成多个.a文件,根据需要引用工程就可以直接使用静态库了,但是有个很麻烦的问题,模拟器用的库和真机的不是同一个,当我们切换的时候需要更换静态库,有两种方式 ...

  5. C#调用Java方法(详细实例)

    C#可以直接引用C++的DLL和转换JAVA写好的程序.最近由于工作原因接触这方面比较多,根据实际需求,我们通过一个具体例子把一个JAVA方法转换成可以由C#直接调用的DLL C#调用c++ C#调用 ...

  6. MySQL MHA配置常见问题

    MHA在MySQL数据库中被广泛使用,它小巧易用,功能强大,实现了基于MySQL replication架构的自手动主从故障转移,从库重定向到主库并自动同步.尽管如此,在部署配置的过程中,由于疏忽总难 ...

  7. OC基础数据类型-NSData-NSMutableData-NSString

    NSData和NSMutableData存储的是二进制数据,在文件操作,网络,以及核心图形图像中使用较广泛.NSData创建后不可以再修改,NSMutableData可以再次修改. 1.NSStrin ...

  8. 点击div折叠

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta cont ...

  9. hhvm的正确安装姿势 http://dl.hhvm.com 镜像

    hhvm是php的第三方运行环境,由facebook出品,基于该运行环境,它还提供了一种编程语言hack - PHP的静态类型版. 折腾了一天后,包括各种编译.配置.FQ,后面终于忍不住搜了一下 ht ...

  10. R语言-GA算法脚本

    ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...