iOS传值方法
来源:互联网 发布:最后的幸存者小说知临 编辑:程序博客网 时间:2024/06/06 16:35
传值:
1>单例传值:
(1)发送方:((AppDelegate *)[UIApplication sharedApplication].delegate).color=[UIColor orangeColor];
接收方: UIColor * color=((AppDelegate *)[UIApplication sharedApplication].delegate).color;
self.view.backgroundColor=color;
//必须在AppDelegate声明一个属性@property (retain) UIColor * color;
(2)先建一个类继承NSObject实现一个+方法并且要声明它传值的属性
DataCenter.h:
+(DataCenter *)sharedDC;
@property (copy) NSString * userName;
@property (copy) NSString * password;
DataCenter.m:
+(DataCenter *)sharedDC
{
static DataCenter * theDataCenter=nil;
if (theDataCenter==nil) {
theDataCenter=[[DataCenter alloc]init];
}
return theDataCenter;
}
发送方:DataCenter * theDC=[DataCenter sharedDC];
theDC.userName=_userNameTF.text;
theDC.password=_passwordTF.text;
接收方:
NSString * userName=[DataCenter sharedDC].userName;
NSString * password=[DataCenter sharedDC].password;
_userInfoLab.text=[NSString stringWithFormat:@”用户名:%@\n用户密码:%@”,userName,password];
2>代理传值:
先遵守一个ChangeColor协议:-(void)itIsTimeToChangeColor:(UIColor *)color;
发送方:if ([self.delegate respondsToSelector:@selector(itIsTimeToChangeColor:)]) {
[self.delegate itIsTimeToChangeColor:color];
}
但必须设置个属性:@property (assign) id delegate;
接收方:-(void)itIsTimeToChangeColor:(UIColor *)color{
self.view.backgroundColor=color;
}但必须遵守协议
3>广播传值:
发送方: //发送一个广播,广播携带参数
[[NSNotificationCenter defaultCenter]postNotificationName:@”changColor” object:oneColor];
接收方: [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(needChangeColor:) name:@”changColor” object:nil];
-(void)needChangeColor:(NSNotification *)notification{
UIColor * color=notification.object;
self.view.backgroundColor=color;
}
4>block传值:
先在发送方声明block属性:有参返回值与无参返回值(下面是带参有参返回值)
typedef UIColor (^block)(UIColor );
发送方:
UIColor * redColor=[UIColor redColor];
UIColor * color1= self.Handle(redColor);
self.view.backgroundColor=color1
接收方:
secondViewController * secondVC=[[secondViewController alloc]init];
secondVC.Handle=^(UIColor * color){
self.view.backgroundColor=color;
return _greenColor;
};
- iOS传值方法
- IOS 传值方法总结
- IOS 传值方法总结
- iOS block传值方法
- IOS 界面传值方法
- iOS 代理方法传值
- iOS总结(界面传值的方法)
- IOS 页面跳转传值方法总结
- iOS不同传值方法的分享
- IOS 页面传值的方法
- iOS-OC常用传值方法
- iOS Selector传值的常见方法
- ios 中的传值的方法
- iOS 页面传值方法汇总
- IOS传值方法-属性正向传值
- IOS学习笔记:视图之间传值的方法
- iOS界面传值的四种方法
- iOS视图传值的3种方法.
- Nginx简单配置
- POJ 3180 The Cow Prom【强连通分量分解】
- Android Paint和Color类学习
- Android开发优化之——对Bitmap的内存优化
- LeetCode 35 - Search Insert Position
- iOS传值方法
- nginx做负载均衡时的session问题解决办法jvm-route原理
- 若有以下定义,且0<=i<4,则不正确的赋值语句是 int b[4][6],*p,*q[4]; A q[i]=b[i]; B p=b; C p=b[i]; D q[i]=&b[0][0];
- 11. Container With Most Water
- HDOJ 1715 大菲波数
- 为什么我要选择使用Yarn来做Docker的调度引擎
- Atitit.linq java的原理与实现 解释器模式
- Application Transport Security has blocked a cleartext HTTP (http://) resource load since it is inse
- [MTK6574] 移植odin问题总结