现有两个视图(ViewController。ViewController1),从ViewController中带參数跳转到ViewController1,在ViewController1选中数据后带有效数据后退到ViewController中。托付实现上述功能。

项目:点击下载

一、ViewController主要代码

// button点击事件
-(IBAction)clickSearchBtn:(id)sender { [[[UIApplication sharedApplication] keyWindow] endEditing:YES]; ViewController1 *_viewController = [[[ViewController1 alloc] init] autorelease];
_viewController.delegate = self;
_viewController.transText = self.textField.text; [self.navigationController pushViewController:_viewController animated:YES];
} // ViewController1Delegate 的代理方法
-(void)selectData:(NSString*)text{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self.listArray removeAllObjects];
for (int i=0; i<5; i++) {
[self.listArray addObject:[NSString stringWithFormat:@"第%d行数据:%@_%d",i+1,text,arc4random_uniform(100)]];
}
dispatch_async(dispatch_get_main_queue(), ^{
[self.dataTableView reloadData];
});
});
}

二、ViewController1主要代码

// ViewController1.h
// delegate写在#import之前,否则可能会Delegate Cannot find protocol declaration
@protocol ViewController1Delegate;
@protocol ViewController1Delegate <NSObject> @optional
-(void)selectData:(NSString*)text;
@end // ViewController1.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ if ([self.delegate respondsToSelector:@selector(selectData:)]) { //通过托付协议传值
[self.delegate selectData:[self.listArray objectAtIndex:indexPath.row]];
[self.navigationController popViewControllerAnimated:YES];
}
}

三、效果图

  

ios两视图间托付(delegate)传值的更多相关文章

  1. iOS视图控制器之间delegate传值教程

    之前在StackOverFlow上看到一篇讲传值(segue传值和delegate传值)的文章,感觉讲的非常清晰,就将delegate部分翻译了一下.有兴趣能够看看. 原文: http://stack ...

  2. ios delegate 代理模式 观察者模式 不同视图间的通信

    delegate,在ios中比比皆是,NSURLConnection(网络请求有),tableView, connectionView,等系统自带 的常见代理.甚至,自己写代码的时候,随意间敲打出了p ...

  3. 【转】iOS 开发之协议protocal-代理传值delegate

    原文网址:http://www.cnblogs.com/wzrong/p/3201938.html 刚开始做iOS开发的时候,对 protocol.delegate 的理解一直都是晕晕乎乎一知半解的状 ...

  4. iOS 页面间几种传值方式(属性,代理,block,单例,通知)

    第二个视图控制器如何获取第一个视图控制器的部分信息 例如 :第二个界面中的lable显示第一个界面textField中的文本 这就需要用到属性传值.block传值 那么第一个视图控制器如何获的第二个视 ...

  5. laravel5.5框架中视图间如何共享数据?视图间共享数据的两种方法

    laravel框架中视图间共享数据有两种,一种是用视图门面share()方法实现,另一种是用视图门面composer() 方法实现,那么,两种方法的实现究竟是怎样的呢?让我们来看一看接下来的文章内容. ...

  6. 《Entity Framework 6 Recipes》中文翻译系列 (10) -----第二章 实体数据建模基础之两实体间Is-a和Has-a关系建模、嵌入值映射

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 2-11 两实体间Is-a和Has-a关系建模 问题 你有两张有Is-a和Has-a ...

  7. iOS 两种不同的图片无限轮播

    代码地址如下:http://www.demodashi.com/demo/11608.html 前记 其实想写这个关于无限轮播的记录已经很久很久了,只是没什么时间,这只是一个借口,正如:时间就像海绵, ...

  8. 通过FEDERATED存储引擎同步两实例间的表数据

    需求情景:实例1中A库中的三个视图是实例2中的B库所依赖的,B需要A库中三个视图的实时数据. 方案:通过FEDERATED来完成跨势力的查询FEDERATED存储引擎表只会创建表结构,不会存储表数据, ...

  9. android:两个应用之间怎样传值之activity

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zjh171/article/details/37738579 两个应用之间怎样传值.事实上这个标题太 ...

随机推荐

  1. 看似无参却有参-----JS中的函数传参

    事件event JS的事件event是一个非常大的对象,不管是什么事件,事件的详情都会绑定到全局变量event中.这样做之所以安全,就是因为JS是单线程的. <html> <body ...

  2. CentOS上搭建Nginx + Mono 运行 asp.net[转]

    http://www.linuxdot.net/ http://www.cnblogs.com/wander1129/archive/2011/12/16/mono.html 安装步骤: 一.获取开源 ...

  3. 【jQuery】页面顶部显示的进度条效果

    <!Doctype html> <html> <head> <title>页面顶部显示的进度条效果</title> <meta htt ...

  4. Kafka日志清除策略

    一.更改日志输出级别 config/log4j.properties中日志的级别设置的是TRACE,在长时间运行过程中产生的日志大小吓人,所以如果没有特殊需求,强烈建议将其更改成INFO级别.具体修改 ...

  5. 转 虫师的selenium借助AutoIt识别上传(下载)详解

    selenium借助AutoIt识别上传(下载)详解 2014-12-27 11:26 by 虫师, 755 阅读, 1 评论, 收藏,  编辑 AutoIt目前最新是v3版本,这是一个使用类似BAS ...

  6. DBA_实践指南系列7_Oracle Erp R12监控OAM(案例)

    2013-12-07 Created By BaoXinjian

  7. [Android实例] 拖动滑块进行图片拼合验证方式的实现

    该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 拖动滑块进行图片拼合验证方式的实现 现在网站上有各种各样的验证码验证方式,比如计算大小,输入图片内容等,今天在一家网站上看到 ...

  8. Android 添加源码到eclipse 以及相关设置

    作者:舍得333 主页:http://blog.sina.com.cn/u/1509658847版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版.作者信息和本声明,否则将追究法律 ...

  9. Python文件遍历二种方法

    分享下有关Python文件遍历的两种方法,使用的OS模块的os.walk和os.listdir实现. 关于Python的文件遍历,大概有两种方法,一种是较为便利的os.walk(),还有一种是利用os ...

  10. js获取控件位置以及不同浏览器中的差别

    js获取控件位置(坐标位置)在不同浏览器中的差别. //获取坐标位置 function getpos(e) { var t=e.offsetTop; var l=e.offsetLeft; var h ...