2019独角兽企业重金招聘Python工程师标准>>>

一. 属性传值(正向):

1. 在第二个界面声明属性
@property(nonatomic,strong)NSString*str;2. 在第一个界面执行跳转时赋值
second.str=@"属性传值";3. 取值
nslog(@"%@",str);

二. Block传值(反向)

//1 第二个界面.h文件定义block
@property(nonatomic,assign)void(^block)(NSString*);
//2 第二个界面.m文件赋值
self.block(@"block传值");
//3 第一个界面.m文件调用
SecondViewController*second=[[SecondViewController alloc]init];second.block=^(NSString*value){NSLog(@"%@",value);};

二. 代理传值(正向传值为例):

/*1*/在FirstViewController.h中
#import <UIKit/UIKit.h>// 声明协议
@protocol PassWordDelegate-(void)passWordDelegate:(NSString*)str;@end@interface FirstViewController : UIViewController
// 设置代理属性
@property(nonatomic,retain)id<PassWordDelegate>delegate;@end/*2*/在FirstViewController.m中
#import "SecondViewController.h"//点击方法
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{SecondViewController*second=[[SecondViewController alloc]init];self.delegate=second;//指定代理[self.delegate passWordDelegate:@"代理传值"];//代理传值[self presentViewController:second animated:NO completion:nil];
}/*3*/遵循协议/*4*/在SecondViewController.m中
//执行协议方法,接收传过来的值
-(void)passWordDelegate:(NSString *)str
{NSLog(@"%@",str);
}

三 单例传值:

单例传值可以理解为定义一个全局变量进行传值

//1 新建一个单例类,在.h文件中
#import <Foundation/Foundation.h>@interface Singleton : NSObject
//声明属性(可设置多个属性)
@property(nonatomic,strong)NSString*passData;+(instancetype)sharedSingleton;@end//2 在.m文件中初始化单例
static Singleton*singleton=nil;
//创建单例
+(instancetype)sharedSingleton{if (singleton==nil) {singleton=[[Singleton alloc]init];}return singleton;
}//3 赋值NSString*str=@"单例传值";Singleton*single=[Singleton sharedSingleton];single.passData=str;//4 取值Singleton*single=[Singleton sharedSingleton];NSLog(@"***%@",single.passData);

四 通知:

//一:发送通知
//字典
NSDictionary*dic=@{@"a":@"1",@"b":@"2",@"c":@"3"};
//发送通知
[[NSNotificationCenter defaultCenter]postNotificationName:@"通知" object:nil userInfo:dic];//二: 接收消息
//注册通知(等待接收消息)
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(value:) name:@"通知" object:nil];
-(void)value:(NSNotification*)sender{NSLog(@"%@",sender.userInfo);//注意关闭通知,否则下次监听还会收到这次的通知[[NSNotificationCenter defaultCenter]removeObserver:self];
}

转载于:https://my.oschina.net/jimolengsha/blog/699352

iOS 开发各种传值相关推荐

  1. IOS开发控制器之间传值的几种小方法

    在IOS开发中或面试中,经常会遇到,两个或者多个控制器之间传值的问题 ,总结的集中方法仅供参考! 问题 :将B控制器中的textField 输入内容,传到A控制器中的label上显示出来,如何传值? ...

  2. 通知模式实现两个textField传值及模态视图——iOS开发

    通知模式实现两个textField传值及模态视图--iOS开发 利用通知模式,实现两个不同界面的textField之间的传值,在界面二输入字符,传值到前一界面的textField. 界面的切换,这里临 ...

  3. iOS开发之通过代理逆向传值

    在iOS开发中,传值是几乎每个App都会用到的,对于传统的顺向传值应该说是比较简单的,但是逆向传值往往会用到代理模式来实现,很多同学在这一块有迷惑,迷惑的不是怎么逆向传值,而是不理解代理模式,下面就来 ...

  4. iOS 代理反向传值

    iOS 代理反向传值 在上篇博客 iOS代理协议 中,侧重解析了委托代理协议的概念等,本文将侧重于它们在开发中的应用. 假如我们有一个需求如下:界面A上面有一个button.一个label.从界面A跳 ...

  5. 浅谈iOS 开发中的界面通信

    在任何的软件开发中都离不开界面与界面之间的通信,界面通信的最直接的方法就是界面传值. 在开发过程中我们在页面传值时我们通常使用的方法有:属性传值法,block传值法,代理传值法,以及单例传值法,通知传 ...

  6. iOS开发(5)动态监听键盘通知

    众所周知,在ios开发的页面传值和监听代理两个环节中,通知Notification是一个重量级角色. 这里主要介绍一下一种特殊ios自带的通知,如 UIKeyboardWillChangeFrameN ...

  7. ios开发基础之通讯录系统实战-20

    ios开发基础之通讯录系统实战 基础知识 OC 基础 segue 的使用.delegate 代理的使用 自定义代理.面向对象思想 沙盒容器的数据持久化方案, controller 之间的跳转 ,登录方 ...

  8. iOS开发-开发总结(四)

    一:send和awk解释 sed -n p filenamesed ----------------------------是一个流编辑器(stream editor) awk 'BEGIN {pri ...

  9. ios开发问题汇总(一)

    教程汇总 IOS比较好的网络教程:IOS编程浅蓝教程 IOS编程教程(五)自定义UITableView的表单元格 菜鸟教程-iOS教程 开发问题 实现页面切换,网上某些文章写的是: [self.nav ...

最新文章

  1. 边缘计算将吞掉云计算!
  2. 安装目录opencv for android 教程(环境搭建篇)
  3. mysql中的extract()函数
  4. 项目七samba服务器,Centos 7 配置Samba服务器
  5. python是不是汇编语言_python是汇编语言吗
  6. 服务器装哪个操作系统好,服务器装哪个操作系统好
  7. shell编程关于数组的那点事
  8. python进阶教程之异常处理
  9. “没有足够的可用内存来运行此程序”怎么解决
  10. HTML使川锚标签,第1章HTML的基本标签祥解.ppt
  11. 中科院30m二级分类土地利用数据Arcgis预处理及获取
  12. c语言程序设计黄迎久,C语言程序设计教程_黄迎久、庞润芳主编 赵军富、徐扬、胡晓燕、贾茹副主编_9787302418528_...
  13. Asp.Net构架(Http请求处理流程)
  14. Zepto中touch模块的使用(移动端)
  15. 计算两个数之差的绝对值
  16. python14-前端之CSS
  17. 计算机的硬盘维修,计算机硬盘的维修方法和技巧
  18. H5\uniapp图片添加水印
  19. Chrome开发者工具-阅读列表
  20. ad设置塞孔_超实用!PCB设计中过孔常用的6种处理方式

热门文章

  1. 中粮国际对话国际农民丰收节贸易会 谋定国际农贸现代化
  2. 上海国际区块链赋能传统产业峰会-王伟:道道人才链启动
  3. SrpingCloud 之SrpingCloud config分布式配置中心
  4. Linux磁盘分区(二):删除
  5. mysql 实验论证 innodb表级锁与行级锁
  6. mysql触发器的简单写法
  7. C语言编写Windows服务程序
  8. 误区30日谈16-20
  9. u-boot分析——struct gd_t与struct bd_t
  10. PM们,请避免对产品的过度解读!