zoukankan      html  css  js  c++  java
  • 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];来获取

  • 相关阅读:
    架构的本质
    gulp 在 angular 项目中的使用
    Ionic 安装部署
    REST API 基于ACCESS TOKEN 的权限解决方案
    ionic 运行过程中动态切换API服务器地址
    ionic 实现双击返回键退出应用功能
    TPS和QPS是什么,他们的区别是什么
    redis和mySql的数据同步的解析
    mySql的UDF是什么
    export导出.xls时,在火狐的情况下出现表名乱码的情况的解决方案
  • 原文地址:https://www.cnblogs.com/wengzilin/p/2400404.html
Copyright © 2011-2022 走看看