0
uipickerviewを使用して曲を選択しています。問題は、ピッカービューとやり取りせずに(つまり、ピッカービューで既に選択/ロードされている最初の曲を再生しようとしている)プレイを押しているときです。uipickerviewデフォルトの行を選択する
致命的なエラー:オプションの値
私はdidSelectRowためのセット以下のコードがあります。
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
musicChoice = songs[row]
}
を私は理解して、ユーザーがスクロール一度こののみを開始が/ピッカービューと対話する - ので、私は何とかselectedRowを使用しようとしていますしかし、どんなアイデアを台無しにしていますか?以下
更新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