#import "ViewController.h"
#import "CZProvinces.h"

@interface ViewController ()<UIPickerViewDataSource,UIPickerViewDelegate>
@property (nonatomic, strong) NSArray *provinces;
@property (nonatomic, assign) NSInteger indexOfProvince;

@end

@implementation ViewController
//懒加载
- (NSArray *)provinces
{
    if (!_provinces) {
        NSArray *array = [CZProvinces provinceList];
        _provinces = array;
    }      return _provinces;
}

- (void)viewDidLoad {
    [super viewDidLoad];
//    [self provinces];
    NSLog(@"%@",self.provinces);
    
}
#pragma mark - 数据源方法
// returns the number of 'columns' to display.
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 2;
}

// returns the # of rows in each component..
//设置每列有多少行
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    if (component == 0) {
//        如果是第一列,则返回province的数目。
        return self.provinces.count;
    }
//    设置index来记载选定的省份。
    CZProvinces *pro = self.provinces[self.indexOfProvince];
    return pro.cities.count;
}
#pragma mark - 设置显示内容
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    if (component == 0) {
//        如果是第一列
        CZProvinces *pro = self.provinces[row];
        return pro.name;
    }
    CZProvinces *selectedProvince = self.provinces[self.indexOfProvince];
    return selectedProvince.cities[row];
}

#pragma mark - 选中行
- (void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if (component == 0) {
//       设置index为row。
        self.indexOfProvince = row;
        [pickerView reloadComponent:1];
        [pickerView selectRow:0 inComponent:1 animated:YES];
    }
}
@end

效果如下: