关于在自定义初始化方法里给text赋值失败的解决
2015-10-29 15:20
423 查看
看到了比较好的解答,猛戳:点击打开链接
因为init比viewdidload之前执行 而label,text之类的控件都是在viewdidload里初始化,所以会出现上面的问题,解决这个问题的办法就是 在view中声明NSString类型的property 用这个string来接受赋值 然后在viewwillappear里面完成对text的赋值 代码如下:
- (void)viewWillAppear:(BOOL)animated{
_contactsText.text =
_contactsString;
_phoneNumberText.text =
_phoneNumberString;
_addressText.text =
_addressString;
_zipCodeText.text =
_zipCodeString;
if (_provincesString !=nil) {
_provincesTextField.text =
_provincesString;
_citiesTextField.text =
_citiesString;
_districtsTextField.text =
_distritsString;
}else{
NSMutableArray *bandArrayProvinces = [[NSMutableArray
alloc]init];
[bandArrayProvinces addObject:@"请选择"];
[bandArrayProvinces addObject:@"江苏省"];
[bandArrayProvinces addObject:@"北京市"];
[bandArrayProvinces addObject:@"山东省"];
[bandArrayProvinces addObject:@"上海市"];
[bandArrayProvinces addObject:@"广东省"];
NSMutableArray *bandArrayCities = [[NSMutableArray
alloc]initWithObjects:@"请选择",@"盐城市",@"上海市",@"南京市",@"广州市"
,nil];
NSMutableArray *bandArrayDistricts = [[NSMutableArray
alloc]initWithObjects:@"请选择",@"江宁区",@"白下区",@"建邺区",@"浦口区",@"鼓楼区",
nil];
_downPickerProvinces = [[DownPicker
alloc]initWithTextField:_provincesTextField
withData:(NSArray *)bandArrayProvinces];
_downPickerCities = [[DownPicker
alloc]initWithTextField:_citiesTextField
withData:bandArrayCities];
_downPickerDistricts = [[DownPicker
alloc]initWithTextField:_districtsTextField
withData:bandArrayDistricts];
//1.如果用户不填写收货人和手机号码
那么省市区三个不能选择
if (!(_contactsText.text.length ==
0) || (_phoneNumberText.text.length ==0)) {
_provincesTextField.enabled =
NO;
_citiesTextField.enabled =
NO;
_districtsTextField.enabled =
NO;
}
}
因为init比viewdidload之前执行 而label,text之类的控件都是在viewdidload里初始化,所以会出现上面的问题,解决这个问题的办法就是 在view中声明NSString类型的property 用这个string来接受赋值 然后在viewwillappear里面完成对text的赋值 代码如下:
- (void)viewWillAppear:(BOOL)animated{
_contactsText.text =
_contactsString;
_phoneNumberText.text =
_phoneNumberString;
_addressText.text =
_addressString;
_zipCodeText.text =
_zipCodeString;
if (_provincesString !=nil) {
_provincesTextField.text =
_provincesString;
_citiesTextField.text =
_citiesString;
_districtsTextField.text =
_distritsString;
}else{
NSMutableArray *bandArrayProvinces = [[NSMutableArray
alloc]init];
[bandArrayProvinces addObject:@"请选择"];
[bandArrayProvinces addObject:@"江苏省"];
[bandArrayProvinces addObject:@"北京市"];
[bandArrayProvinces addObject:@"山东省"];
[bandArrayProvinces addObject:@"上海市"];
[bandArrayProvinces addObject:@"广东省"];
NSMutableArray *bandArrayCities = [[NSMutableArray
alloc]initWithObjects:@"请选择",@"盐城市",@"上海市",@"南京市",@"广州市"
,nil];
NSMutableArray *bandArrayDistricts = [[NSMutableArray
alloc]initWithObjects:@"请选择",@"江宁区",@"白下区",@"建邺区",@"浦口区",@"鼓楼区",
nil];
_downPickerProvinces = [[DownPicker
alloc]initWithTextField:_provincesTextField
withData:(NSArray *)bandArrayProvinces];
_downPickerCities = [[DownPicker
alloc]initWithTextField:_citiesTextField
withData:bandArrayCities];
_downPickerDistricts = [[DownPicker
alloc]initWithTextField:_districtsTextField
withData:bandArrayDistricts];
//1.如果用户不填写收货人和手机号码
那么省市区三个不能选择
if (!(_contactsText.text.length ==
0) || (_phoneNumberText.text.length ==0)) {
_provincesTextField.enabled =
NO;
_citiesTextField.enabled =
NO;
_districtsTextField.enabled =
NO;
}
}
相关文章推荐
- c++模板
- 自用Sublime设置
- Java读取Excel中的数据
- Convariance、Contravariance、Invariance
- JavaScript面向对象
- PHP 7 值得期待的新特性(上)
- Android开发的七大环节
- HDU2030 汉字统计
- C# 之 DataReader 和 DataSet 的区别
- 在页面中使用Flowplayer播放器
- 欢迎使用CSDN-markdown编辑器
- 海思GPIO
- 详解xtrabackup对MySQL进行备份和恢复的全过程
- Android编程之SurfaceView学习示例详解
- android找不到.xml和资源文件
- Cordys HTML5 多语言代码 解读
- AOP编程的思想
- Kendo UI - Class 基类定义
- ocp小计
- Android手机在获取root权限下的抓包过程