IOS学习笔记:视图之间传值的方法
来源:互联网 发布:康佳电视机软件下载 编辑:程序博客网 时间:2024/05/22 16:48
1.单例
static Content *content = nil;+ (Content *)shareContent{ if (content == nil) { content = [[self alloc]init]; } return content;}
//视图已经显示的时候调用的方法- (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; Content *content = [Content shareContent]; _textLabel.text = content.text;}
//把textField的值存放到content对象里面 Content *content = [Content shareContent]; content.text = _textField.text;
2.通知
//移除通知 [[NSNotificationCenter defaultCenter]removeObserver:self name:kNotifName object:nil]; //注册通知 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(notificationAction:) name:kNotifName object:nil];//接受到通知的方法- (void)notificationAction:(NSNotification *)notification{ NSString *text = [notification.userInfo objectForKey:@"text"]; _textLabel.text = text;}
NSDictionary *dic = @{@"text":_textField.text}; //发送通知 [[NSNotificationCenter defaultCenter] postNotificationName:kNotifName object:nil userInfo:dic];
3.代理
#import <Foundation/Foundation.h>@protocol UIViewPassValueDelegate <NSObject>- (void)passValue:(NSString *)value;@end
//实现协议,在第一个窗口显示在第二个窗口输入的值- (void)passValue:(NSString *)value { _label.text = value;}//设置第二个窗口中的delegate为第一个窗口的self contentVC.delegate = self;
//这里用assign而不用retain是为了防止引起循环引用。@property(nonatomic,assign) NSObject<UIViewPassValueDelegate> *delegate;//通过委托协议传值 [delegate passValue:_textField.text];
4.KVO
- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view from its nib. [self _initViews]; //创建一个观察者 //创建(secondViewController)视图 _secondVC = [[SecondViewController alloc]init]; //添加观察者 /* 被观察者: 1.所要观察的属性是否存在。 2.这个属性的改变必须通用set方法去改变,或者kvc */ [_secondVC addObserver:self forKeyPath:@"textField.text" options:NSKeyValueObservingOptionNew context:nil]; }#pragma mark - KVO- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{ _textLabel.text = [change objectForKey:@"new"];}
//触发self.textField.text = self.textField.text;
0 0
- IOS学习笔记:视图之间传值的方法
- IOS两个视图之间的传值
- IOS视图之间传值
- iOS学习笔记(7)视图控制器之间传递参数的三种方式
- 用代理方法进行视图之间的传值 B视图值传入A视图
- iOS 视图之间的各种传值方式
- iOS开发 两个视图之间值传递的常用方法<一>
- iOS开发 两个视图之间值传递的常用方法<二>
- iOS开发 两个视图之间值传递的常用方法<三>
- iOS开发 两个视图之间值传递的常用方法<四>
- iOS开发 两个视图之间值传递的常用方法<五>
- iOS学习笔记-003.视图 & 视图控制器
- iOS集合视图学习笔记
- iOS 学习笔记 视图切换
- iOS视图传值的3种方法.
- iOS 视图之间传值(一)代理传值
- PHP学习笔记(八):PHP页面之间传值的四种方法
- android学习笔记-Activity之间传值的3种方法
- grep之字符串搜索算法Boyer-Moore由浅入深(比KMP快3-5倍)
- 如何使用arm-linux-androideabi-addr2line
- 在CentOS6.5上安装Code::Blocks
- linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例
- char * 与 char[]的区别及C++ Memory Layout
- IOS学习笔记:视图之间传值的方法
- poj2586 贪心
- linux shell 创建序列数组(list,array)方法
- POJ 1745 Divisibility
- IoC使用方法
- jni实现java和c++互调
- [计算机基础]计算机系统学习笔记(一)
- linux shell 不同进制数据转换(二进制,八进制,十六进制,base64)
- POJ 3253