iOS传值问题

来源:互联网 发布:青海蒙古 知乎 编辑:程序博客网 时间:2024/05/14 16:16

传值:
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;
};

1 0
原创粉丝点击