传值有四种方法 : 1.属性传值 2.单例传值 3.代理传值 4.block传值

原创 2015年11月21日 08:54:43
传值有四种方法 :
1.属性传值
2.单例传值
3.代理传值
4.block传值
 
 
一.属性传值   (前-->后)
1. 后面的界面定义一个属性  存放前一个界面传过来的值
   注意:属性定义成字符串还是别的类型 取决于你的需求 
 
2. 后面的界面创建完毕后,为属性赋值(记录需要传递的值)
 
3. 在需要使用值的地方  使用属性记录的值
 
4. 通过 定义属性 达到传值目的的方法 称为属性传值
属性传值一般用于 从前一个界面向后一个界面传值
 
二.单例传值  (万能的传值方式  可以跨多个页面之间进行传值)
 
1.首先定义一个单例  在这个单例中只有一个实例  但是可以有多个属性
 
2.  static Single *single=nil;

 +(Single *)shareSingle
 {
    @synchronized(self){
        if (single==nil) {
            single=[[Single alloc] init];
        }
        
    return single
;
    }

    

3.把要传的值赋值给单例中d的属性

 
注:单例  通常提供一个类方法 获取这个唯一的实例
//但绘制类型  就是这个类的类型 命名以default shared  current standard等开头
单例一个类只有一个实例  单例的对象通常不释放  直到程序退出
 
 
三.代理传值    (后à前)
 
1.  1.后一个界面定义一个协议 并且定义一个属性叫delegate
 
2.  2.  在前一个界面进入后一个界面的瞬间(创建完后一个界面之后,让前一个界面作为后一个界面的delegate)
 
3.   3.  前一个界面实现代理方法
 
4.   4.  后一个界面在合适的机会 让代理 执行代理方法(传的值以参数的形式含在代理方法里)
 
 
四.block传值   (后->前)
 
1.后一个界面声明block属性
 
@property (nonatomic,copy)void (^chuanzhi)(NSString *_str);
 
2.在.m中的传值方法里检查block是不是存在
 
if (_chuanzhi) {
        _chuanzhi(_textField.text);
        _chuanzhi=nil;
    }

 
3.前一个界面进入后一个界面的方法里实现这个block
 
 [(dVC)后一个界面控制器 setChuanzhi:^(NSString *_str){

        dispatch_async(dispatch_get_main_queue(), ^{
        
            _label.text=_str;
        });
    

    }];
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_31595187/article/details/49961869

iOS 传值方法(属性传值、代理传值、Block、通知、单例)

  • 2016年06月03日 17:28
  • 75KB
  • 下载

iOS开的常见8中传值(初始化传值,代理传值,属性传值,代理传值,block传值,通知传值,NSuserDefault传值,AppDelegate传值)

  • 2016年04月24日 23:46
  • 1.17MB
  • 下载

谈谈ios传值方式(属性传值、代理传值、Block传值、单例传值、通知传值、KVC传值)

一下所有的演示由:AViewController 和 BViewController 完成简写(AVC和BVC) 1.属性传值(AVC代码传到BVC代码): AVC 导入  BVC BVC声明...
  • TianYou_Code
  • TianYou_Code
  • 2016-08-03 10:48:22
  • 881

IOS页面传值

  • 2013年09月09日 15:16
  • 50KB
  • 下载

iOS个人整理14-界面间传值:属性传值---代理传值---block传值---单例传值

一、属性传值 从前向后 假设A为第一个视图控制器,B为第二个视图控制器 在A中导入B的.h文件 场景:A向B传值 第一步:在B的.h中定义一个content属性 @interface Secon...
  • u010330109
  • u010330109
  • 2016-01-23 14:34:12
  • 485

iOS智联招聘

  • 2013年05月06日 09:25
  • 51KB
  • 下载

iOS_界面传值—单例传值

单例传值用起来也比较方便,就是需要多两个文件,当然了,如果不创建也能用,也有些是写在appdelegate.h里的。下面我就介绍下单例的基本使用方法: 一、首先创建一个文件,继承NSObject ...
  • w582324909
  • w582324909
  • 2018-01-10 14:08:06
  • 82

iOS传值(属性传值,代理传值,单例传值,通知传值,Block)

属性传值 将A页面所拥有的信息通过属性传递到B页面使用 B页面定义了一个naviTitle属性,在A页面中直接通过属性赋值将A页面中的值传到B页面。 A页面DetailView...
  • u013089934
  • u013089934
  • 2014-01-20 09:54:00
  • 1081

iOS-OC-iOS传值大全(代理传值,block 传值,单例传值,通知传值,属性传值)

1、代理传值 有A \B 两个页面需要将B页面的值传个A 总结: 1.首先应该在b页面写一个协议,协议里有带参数的方法,并创建实现该协...
  • u014220518
  • u014220518
  • 2016-03-21 11:52:28
  • 907

iOS开发逆向传值之代理传值

  • 2014年09月06日 22:13
  • 42KB
  • 下载
收藏助手
不良信息举报
您举报文章:传值有四种方法 : 1.属性传值 2.单例传值 3.代理传值 4.block传值
举报原因:
原因补充:

(最多只允许输入30个字)