iOS数据传值方法记录
在写UITableViewDelegat自定义创建Cell方法中遇到了数据传值的难题,最后了解到有三种方式可以做到数据传值。
- 在自定义Cell中初始化定义时将数据带入到初始化方法中。
- 在自定义Cell中通过将需要修改的属性或者控件数值暴露在***.h***文件中,方便外部调用以及修改。
- 在自定义Cell中创建方法,通过调用方法做到数据传值。
三种方式分别说明
通过修改初始化方法
首先需要在自定义Cell文件的***.h***文件中声明自定义初始化函数
//例如
-(instancetype)initWithStyle:(UItableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier arrName:(Nsstring *)nameString;
然后需要在***.m***文件中使用自定义初始化函数,并且创建一个全局的自定义变量来接受需要传输的数据
-(instancetype)initWithStyle:(UItableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier arrName:(Nsstring *)nameString
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if(self){
self.nameString = nameString; //self.nameString 是自定义全局变量。
[self createView]; //创建其他数据类型的函数。
}
return self;
}
将需要修改的数据暴露在***.h***文件中
在自定义Cell***.h***文件中将需要修改的控件或者变量在此声明
@property(nonatomic,strong) UILable * lable;
.m文件
self.lable = lable;
在创建自定义Cell时,通过一下方式进行修改
cell.lable.text = @"";
在自定义Cell中创建自定义函数,函数中定义修改的方法
需要将自定义函数暴露在Cell的***.h***文件中方便外部调用。
-(void)setDate:(NSString *)stringName;
在Cell的***.m***文件中定义,创建自定义Cell时,需要调用该函数,不然无法使用。
[cell setDate:self.myarr[indexPath.row]];