看到了比较好的解答,猛戳:点击打开链接
因为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;
}
}