2014-10-31 3 views
11

Swift에서 UIPickerViewControl의 선택된 값을 어떻게 얻을 수 있습니까? Swift에서 UIPickerViewControl의 선택된 값 받기

나는이 같은 시도 :

labelTest.text = Spinner1.selectedRowInComponent(0).description 

을하지만 이것은 단지 선택된 인덱스를 반환합니다. 나는 가치가 필요하다.

이 작업을 수행하는 방법을 알고있는 사람은 누구입니까?

+2

색인 x에 어떤 값이 있는지 알지 못한다면 누구입니까? 피커에 데이터 소스를 채웠으므로 내부에 무엇이 있는지 알아야합니다. –

+0

let selectedValue = rolePicker.selectedRowInComponent (0) 값을 제공합니다. 또한, selectedValue = rolePicker.selectedRowInComponent (0) .hashValue를 사용하면 무언가를 사용할 수도 있습니다. –

답변

33

당신이 자기에 피커보기 대리자를 설정하고이 함수를 재정의해야합니다

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) 
    { 
     // use the row to get the selected row from the picker view 
     // using the row extract the value from your datasource (array[row]) 
    } 

또는

당신은 당신의 사용에 따라 추출하기 위해 이것을 사용할 수 있습니다

var selectedValue = pickerViewContent[pickerView.selectedRowInComponent(0)] 

pickerViewContent 귀하의 데이터 소스 배열입니다

+0

마지막 방법을 이해하고 있지만 dataSource 배열을 어떻게 찾을 수 있습니까? – Programmer1994

+0

선택기보기에 대한 데이터 소스를 설정 한 곳에서 동일한 클래스 내에서 설정해야합니다. –

5

스위프트 3 : 사용자가 선택한 각 행의 문자열 값을 원하는 supose

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 

     let valueSelected = yourDataSourceArray[row] as String 
} 
3

스위프트 4

let selectedYearPicker = pickerData[yearPicker.selectedRow(inComponent: 
print(selectedYearPicker) 

또는

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    let yearValueSelected = pickerData[row] as String 
    print(yearValueSelected) 
} 
0

모든 해답 지금까지 당신을 전제로 선택한 행을 원래 데이터 배열에 쉽게 연결할 수 있습니다. 할 수 있다면 해법은 상당히 쉽지만, 원래 배열을 쉽게 구할 수없는 경우를 다루고 있습니다. 예를 들어 하나의 행을 탭할 때 확장되는 테이블 셀에 3 개의 피커가 있으며 3 개의 다른 배열을 표시합니다.

피커 자체에서 선택한 텍스트를 쉽게 검색 할 수 있다면 (예 : 사용자 지정 셀의 코드에서) 어떤 피커, 데이터 배열, 어떤 행 및 곧.

대답이 일 수 없다면 일 수 있습니다. 괜찮습니다. 그러나 문제는 바로 가기가 있는지 여부입니다.

+0

신경 쓰지 마세요. 선택기의 입력 데이터 배열에서 선택한 행으로 돌아가는 것이 생각보다 쉽습니다. 바로 가기가 없더라도 바로 가기는 필요하지 않습니다. –