UIPickerView从中间的选定行开始

问题描述:

当用户从UIPickerView中选择一个状态时,它会将它们带到不同的viewController,其中包含所选状态的数据。当他们点击'后退'按钮并转到viewController以获得pickerView时,它总是从第一个状态开始,在这里是亚利桑那州。我如何让它已经滚动到中间,例如选择田纳西州,如果那是他们最初选择的州?我正在使用Xcode 7和Swift 2,谢谢!UIPickerView从中间的选定行开始

我有一个UIPickerView即得到它从数据:

let pickerData = ["Arizona", "Arkansas", "California","Tennessee", "Texas", "Utah", "Virginia"] 

当用户需要该值的pickerView选择的状态,并将其添加到一个变量:

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    //Takes the selected state and adds it to the variable 'currentState' 
    currentState = pickerData[row] 
    savedStateGV = currentState 
} 

“savedStateGV '是一个全局变量,'currentState'是一个局部变量。两者都是String类型。

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 
    return 1 
} 

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
    return pickerData.count 
} 

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    return pickerData[row] 
} 

,你可以在你的ViewController定义属性middleOfPicker(整数),你可以设置在例行“viewDidLoad中”这个属性(yourpicker是你给你的选择器的IBOutlet中名)使用的代码序列:

middleOfPicker = pickerData.count/2 
yourpicker.selectRow = middleOfPicker 

最后,您的“返回”按钮的动作例程,然后应包括以下语句:

yourpicker.selectRow = middleOfPicker