传值有四种方法 : 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;
        });
    

    }];
版权声明:本文为博主原创文章,未经博主允许不得转载。

单例的书写与通知、代理、Block简单的传值

一、通知// 1、在需要监听的控制器中创建通知中心,接收通知消息 [[NSNotificationCenter defaultCenter] addObserver:self selector:@se...

iOS 通知,代理,单例,block传值

1.单例设计模式 .h // // danli.h // test ipad // // Created by 黄权浩 on 14-12-24. // Copyright (c) 2014年 ...

iOS开发系列----UI(视图编程入门:Delegate、Block、单例、属性传值)

本章介绍三种逆向传值方式(Delegate、Block、单例)、一种正向传值方式(属性)Delegate传值: 核心代码: SecondViewController.h#import //声明协议...

IOS学习之——界面2传值到界面1(代理方法)

TRFiristViewController#import "TRFiristViewController.h" #import "TRSecondViewController.h" @interf...

iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)

iOS页面间传值的方式(NSUserDefault/Delegate/NSNotification/Block/单例) 实现了以下iOS页面间传值:1.委托delegate方式;2.通知notifi...

iOS页面间传值的方式(NSUserDefault/Delegate/NSNotification/Block/单例)

iOS页面间传值的方式(NSUserDefault/Delegate/NSNotification/Block/单例) 实现了以下iOS页面间传值:1.委托delegate方式;2.通知noti...

IOS代理方法反向传值

  • 2015年04月25日 16:25
  • 33KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:传值有四种方法 : 1.属性传值 2.单例传值 3.代理传值 4.block传值
举报原因:
原因补充:

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