您的位置:首页 > 移动开发 > IOS开发

iOS传值方法

2016-03-01 15:52 691 查看
传值:

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

{

4000

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;

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