您的位置:首页 > 产品设计 > UI/UE

iOS UI界面之间传值方式的整理总结(2)单例方法

2016-01-19 15:51 337 查看
单例

实现a b 两个界面之间的传值   首先创建一个单例  即单独的 .h 和 .m文件  

.h文件中 

//声明一个属性,用于存储输入的文字

@property (nonatomic,copy)
NSString *showText;

//创建单例的方法
+(SingleTon *)shareSingleTon;

.m文件中 
单例的两种创建方式 

//创建单例的方式

/*

+(SingleTon *)shareSingleTon

{

    static SingleTon *single = nil;

    @synchronized(self)//保证线程安全

    {

        if (single == nil) {

            single = [[[SingleTon class] alloc]init];

        }

    }

    return single;

}

 */

/*另一种单例的实现方式,也是保证线程安全的*/

+(SingleTon *)shareSingleTon
{
   
static SingleTon *single =
nil;

    static
dispatch_once_t tonken;

    //保证block中得代码,只被执行一次
   
dispatch_once(&tonken, ^{

        
        single = [[SingleTon
alloc]init];
    });
   
return single;
}

实现 a  b 界面之间的传值  只需要 引入头文件  收线在第二个界面 即输入值得界面调取单例 给单例的属性赋值 ,然后退出界面  然后在 第一个界面将要出现的时候 调用单例 实现赋值   从而完成 反向传值 

第一次单例的调用 :

  SingleTon *single = [SingleTon
shareSingleTon];

    single.showText =
_textFiled.text;

传值结束 在第二个界面将要出现时 调用单例:

-(void)viewWillAppear:(BOOL)animated
{
    [super
viewWillAppear:animated];
   
UILabel *label = (id)[self.view
viewWithTag:10];

    //获取单例对象

    SingleTon *single = [SingleTon
shareSingleTon];
    label.text = single.showText;
}

从而实现简单的单例传值

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: