一、目录
- 属性 传值
- 单例 传值
- block传值
- 代理 传值
- 总结
- 个人使用心得
- 代码下载地址:https://github.com/ChenZeBin/SendValue
二、掌握四大传值前提
1.掌握push跳转 相关文章链接:http://www.jianshu.com/p/46f693f761a1
2.掌握单例模式
3.掌握block
4.掌握代理
三、介绍
1、属性传值
(1)、介绍:
比如A视图要给B视图传值字符“abc”
1,B视图就声明一个属性NSSTring来接受字符abc
2,A视图中new一个B控制器,B.NSString = “abc”
3,这样就赋值过去了
(2)、代码:
// B视图的.h文件
@property (nonatomic,copy) NSString *propertySendString;
// 用来接受A视图传递过来的数据
// A视图的.m文件
Delegate *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"delegateVC"];
vc.propertySendString = @"属性传值";
[self.navigationController pushViewController:vc animated:YES];
(3)、注意:
在A视图里面new了B视图,这时候跳转到B视图,一定一定一定要把这个new的视图push过去,不然如果是故事版脱线跳转的话,跳转过来的就不是这个new的B控制器了,那么传递肯定是失败的
2、单例传值
(1)、介绍:
单例就是整个APP只有一个对象,比如我把A类设为单例,那么我new的A类对象都是同一样,不会出现第二个的,这样我给A类中的一个变量赋值,那么我在其他视图想要用的时候,我就只需要new这个单例对象去拿这个变量的值就可以了
(2)、代码
// 创建一个单例类 这个类的.h文件
#import <Foundation/Foundation.h>
@interface SingleTon : NSObject
// 传值的属性
@property (nonatomic,copy) NSString *passValue;
// 创建单例 (单例的命名,shared+类名)
+ (SingleTon *)sharedSingleTom;
@end