0
uipickerview를 사용하여 노래를 선택합니다. 문제는 피커 뷰와 상호 작용하지 않고 재생을 누르면 (즉, 피커 뷰에서 이미 선택 /로드 된 첫 번째 곡을 재생하려고하는 경우) 오류가 발생합니다.uipickerview 기본 행을 선택하십시오.
치명적인 오류 :
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
musicChoice = songs[row]
}
를 내가 이해,/피커 뷰와 상호 작용하는 사용자가 스크롤하면이 단지 동수 - 그래서 어떻게 든 selectedRow를 사용하는 것을 시도하고있다 : (선택 사양) 값
나는 didSelectRow에 대한 설정 아래의 코드를 엉망진창이야, 어떤 생각이야? 아래
업데이트 pickerview 코드 :
var songs:[String] = []
var musicChoice = "Something"
let foods = ["Apples", "Bananas", "Corn", "Beans", "Tomatoes"]
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return songs[row]
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return songs.count
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
musicChoice = songs[row]
}
필자는이를 시도했지만, musicChoice 변수를 선언하기 전이 아닌 피커보기 코드 다음에 노래 [0] 만 사용할 수 있다고 말하면서 원래의 게시물을 업데이트했습니다. – Berro
필자가'playSong' 메서드를 사용하는 것이 피커 뷰 대리자 코드와 완전히 다르다는 것을 이해했기 때문에 이전에 초기화 한 경우 피커 뷰를 터치하지 않고도 노래 [0]을 사용할 수 있어야합니다. UIViewController 클래스의 전체 코드를 공유해 주시겠습니까? – Jeet
붙여 넣기를 복사하려고했는데 노래가 노래 배열에 추가 된 후 바로 제안을 추가한다고 생각했습니다. 트릭을 완료 한 것처럼 보입니다. 이렇게하면 노래가 노래 배열에 추가 된 후 musicChoice가 자동으로 노래 배열의 첫 번째 항목 (항상 첫 번째 노래 여야 함)으로 채워지고 항상 항상 첫 번째 옵션으로 표시됩니다. 피커보기 - 아니면 내가 잘못 했습니까? – Berro