2015-10-13 39 views
0

當用戶從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] 
} 

回答

2

,你可以在你的ViewController定義屬性middleOfPicker(整數),你可以設置在例行「viewDidLoad中」這個屬性(yourpicker是你給你的選擇器的IBOutlet中名)使用的代碼序列:

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

最後,您的「返回」按鈕的動作例程,然後應包括以下語句:

yourpicker.selectRow = middleOfPicker