单例传值用起来也比较方便,就是需要多两个文件,当然了,如果不创建也能用,也有些是写在appdelegate.h里的。下面我就介绍下单例的基本使用方法:
一、首先创建一个文件,继承NSObject
(1).h文件中
#import <Foundation/Foundation.h>
@interface DefaultInstance : NSObject
@property (nonatomic,copy) NSString *info; //这是就是用来传值用的属性,想传什么值,就先赋值给它,相当于中介
+(instancetype)sharedInstance; //共享单例的方法
@end
(2).m中实现方法:
+(instancetype)sharedInstance {
static DefaultInstance *shareInfo = nil;
if (shareInfo == nil) {
shareInfo = [[DefaultInstance alloc] init];
}
return shareInfo;
}
二、传值的控制器.m文件中:
(1)导入头文件:
#import "DefaultInstance.h"
(2)给单例赋值:
[DefaultInstance sharedInstance].info = self.text.text;
三、获取传值的控制器.m文件中:
(1)导入头文件
#import "DefaultInstance.h"
(2)拿到单例的值,这样传值就成功了
_label.text = [DefaultInstance sharedInstance].info;
四、同理,单例也可以反向传值,第二个控制器给单例赋值之后,在第一个控制器的拿到单例值就行了,方法如下(第一个控制器的方法):
-(void)viewWillAppear:(BOOL)animated {
self.label.text = [DefaultInstance sharedInstance].info;
}
单例传值就先讲到这里,这个方法应该算是比较简单了吧。