ios常用的几种反向传值
来源:互联网 发布:java字符流写入文件 编辑:程序博客网 时间:2024/05/19 16:22
在程序代码编写过程中,避免不了传值的情况。传值分为两种,一种是正向传值,直接从A页面 push 到B页面,带数据和消息过去就可。那反向传值怎么操作?
一般常见的有代理,block,通知,单例...
1.代理,这是我个人最常用的 。
代理怎么实现反向传值,可以分为以下几个步骤:
第一步:定义协议(代理)
@protocol myDelegate <NSObject>
//这是协议方法
-(void)changeLabel:(NSString *)str;
@end
第二步:定义代理指针
@property(nonatomic,assign)id <myDelegate>delegate;
第三步:回调(如果不回调,是完成不了传值的)
if(self.delegate&&[self.delegaterespondsToSelector:@selector(changeLabel:)])
{
[self.delegatechangeLabel:_textF.text];
}
前三步都是在需要传值的类实现的,接下来的三个步骤是在需要接受类中实现的
第四步:继承协议
@interfaceViewController ()<myDelegate>
第五步:使用代理
vc.delegate=self;
第六步:实现协议方法
-(void)changeLabel:(NSString *)str
{
_label.text=str;
}
2.通知来实现
第一步:发通知(发消息) 在传值类中实现
[[NSNotificationCenter defaultCenter] postNotificationName:@"通知频道" object:nil userInfo:@{@"name":_textF.text}];
第二步:注册通知(接受消息) 在接受类中实现
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(labelText:)name:@"通知频道"object:nil];
第三步:实现方法
-(void)labelText:(NSNotification *)not
{
NSDictionary *dict = [notuserInfo];
_label.text=dict[@"name"];
}
注意:通知要手动释放-(void)dealloc
{
[[NSNotificationCenterdefaultCenter]removeObserver:self];
}
获取当前程序的单例
AppDelegate *appdelegate = [UIApplication sharedApplication].delegate;
appdelegate.string = _textF.text;
_label.text = app.string;
4.block(代码块)
第一步:定义block变量
@property(nonatomic,copy)void (^myBlock) (NSString *);
返回值的类型 (^block的名称) (参数类型)
第二步 :回调
if(self.myBlock)
{
self.myBlock(_textF.text);
}
第三步:实现block
vc.myBlock = ^(NSString *str)
{
_label.text =str;
};
- ios常用的几种反向传值
- iOS 常用的反向传值协议的使用
- ios中反向传值得几种方法
- iOS 中常用的几种加密
- 几种常用的ios设计模式
- iOS常用的几种设计模式
- 几种常用的ios 面试题
- iOS 反向传值
- IOS四种反向传值的方法
- 几种常用的传值方式
- 字符串反向输出的几种方法
- ios UIViewController 反向传值
- iOS---block反向传值
- iOS 代理反向传值
- iOS block反向传值
- iOS 代理反向传值
- IOS代理反向传值
- iOS 代理反向传值
- Android 网络层的封装
- RuntimeException
- 黑马程序员_java反射
- jquery 插件封装总结
- 关于SAP中物料双单位的解析
- ios常用的几种反向传值
- 亲和串
- Android Networking I: OkHttp, Volley and Gson
- Financial Management
- CTreeCtrl之排序
- %后面字母含义&如何发现系统中堆栈的大致位置
- SharedPreferences的跨应用读/写
- 学习笔记9:Scala外部类和内部类
- 面向 Perl 开发人员的 XML,第 2 部分: 使用到 Perl 的高级 XML 解析技术