view间传值的方法总结

简介:

1、利用NSUserDefaults来传值,这种方法只限于传少量数据的情形:

比如你要传一个float的值,在需要传的时候用
[[NSUserDefaults standardUserDefaults] setFloat:float forKey::@"float"]
接收值的时候用
[[NSUserDefaults standardUserDefaults] floatForKey:@"float"]

 

2、NSNotificationCenter来传值

 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch * touch = [touches anyObject];
    CGPoint point = [touch locationInView:self];
    CGRect roundRect = [self rectNeedRefreshFromThisPoint:point];
    mLastPoint = CGPointMake(-1, -1);
    
    NSLog(@"%s: point(%f,%f)", __FUNCTION__, point.x, point.y);
    
    [self addToCurrentLineWithPoint:point.x y:point.y];
    [self endLine];
    [self setNeedsDisplayInRect:roundRect];
    
    NSNumber *pointX = [NSNumber numberWithFloat:point.x];
    NSNumber *pointY = [NSNumber numberWithFloat:point.y];
    NSDictionary *pointDict = [NSDictionary dictionaryWithObjectsAndKeys:pointX,@"pointX",pointY,@"pointY", nil];
    [[NSNotificationCenter defaultCenter]postNotificationName:@"passTouchedEndPointMsg" object:self userInfo:pointDict];
    
}

 

在消息中心的函数:

        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(getTouchedPoint:)
                                                     name:@"passTouchedEndPointMsg"
                                                   object:nil];
  

- (void) getTouchedPoint:(NSNotification *)noti
{
    NSDictionary *pointDict = [noti userInfo];
    touchedEndPointX = [[pointDict objectForKey:@"pointX"] floatValue];
    touchedEndPointY = [[pointDict objectForKey:@"pointY"] floatValue];
    NSLog(@"%f:%f",touchedEndPointX,touchedEndPointY);
}

用消息来传参数有下面几点说法:object指的是发送者、在poseter端的userInfo里面可以存放要传的参数,必须为NSDictionary类型。在center端获取这个dictionary类型用:[notification userInfo];来获取

本文转自编程小翁博客园博客,原文链接:http://www.cnblogs.com/wengzilin/archive/2012/03/16/2400404.html,如需转载请自行联系原作者

相关文章
|
前端开发
react组件传值-class的传值方式
react组件传值-class的传值方式
92 0
|
JavaScript 开发者 前端开发
组件传值-父组件向子组件传值和 data 与 props 的区别|学习笔记
快速学习组件传值-父组件向子组件传值和 data 与 props 的区别
153 0
组件传值-父组件向子组件传值和 data 与 props 的区别|学习笔记
|
JavaScript 开发者
组件传值-子组件通过事件调用向父组件传值|学习笔记
快速学习组件传值-子组件通过事件调用向父组件传值
116 0
组件传值-子组件通过事件调用向父组件传值|学习笔记
调用View#requestLayout后,哪些View会被影响?
调用View#requestLayout后,哪些View会被影响?
|
小程序 JavaScript
小程序子组件给父组件传值并且调用方法
小程序子组件给父组件传值并且调用方法
使用NavHostFragment、navigation--- avtivity向fragment传值,fragment之间传值
使用NavHostFragment、navigation--- avtivity向fragment传值,fragment之间传值
248 0
构建 View 时可能用到的代理函数调用顺序
  很多时候,要记住iPhone试图加载的life-cycle对应的代理函数是有点头疼的,特别是用Interface Builder构建界面的情况下。这给如何找到最佳的位置来添加自定义的视图绘画/初始化/配置成为了一个对于新手来说的难题。
654 0
|
容器 数据安全/隐私保护 JavaScript
View组件
一、使用方法 view组件是最常用的,也是最简单的视图容器。它是一个块级容器组件,它没有特殊的功能,主要用于布局展示,是布局中最基本的UI组件。几乎所有复杂的布局都可以通过嵌套view来实现。 view除了公共属性之外,还有以下几个私有属性 属性名 类型 默认值 说明hover-.
3043 0
|
程序员 Android开发
有关自定义View的学习(View的点击事件传递流程)
1、安卓OnTouchListener,onTouchEvent,onClickListener执行顺序 首先我们相对比较熟悉的是处理滑动冲突时候的三个事件(ViewGroup 继承 View) (View是没有onInterceptTouchEvent方法的),先看看ViewGroup和View的事件流程方法: ViewGroup 1.
1182 0