关于在自定义初始化方法里给text赋值失败的解决

看到了比较好的解答,猛戳:点击打开链接

因为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;

        }


    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值