私はUIPickerViewに関する迅速な質問があります。UIPickerView - 条件付き表示
私は値を持つ2つのpickerviews
つを作成している - A、B、C、F
2つの値を持つ - B、C、D、E
と私は今にロジックをしたいですこれらの2つのピッカービューで実装する必要があります。
ロジックは、最初のピッカービューでBとCを選択した場合、2番目のピッカービューではユーザーが選択できるBとCがないことです。どうすればそれを達成できますか?
私は初心者ですので、どんなヒントもありがとうございます。
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
@IBOutlet weak var Picker1: UIPickerView!
@IBOutlet weak var Picker2: UIPickerView!
@IBOutlet weak var label: UILabel!
var savedVal1 = "" as String
var savedVal2 = "" as String
var Array = ["A", "B", "C", "F"]
var Array2 = ["B", "C", "D", "E"]
var PlacementAnswer = 0
override func viewDidLoad() {
super.viewDidLoad()
Picker1.delegate = self
Picker1.dataSource = self
Picker1.tag = 1
Picker2.delegate = self
Picker2.dataSource = self
Picker2.tag = 2
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView == Picker1
{ return Array[row] }
else if pickerView == Picker2
{ return Array2[row] }
return ""
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView == Picker1
{ return Array.count }
else if pickerView == Picker2
{ return Array2.count }
return 1
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
}
ありがとうございました。ちょうど質問 - このコマンド "Array2.indexOf(Array2.indexOf(Array [row]))"エラーメッセージがあります - "オプションの型 'インデックスの値ですか?アンラップされていない、あなたは '!'または '?' " –
ああ、申し訳ありません私はちょうどコンパイラなしでそれを書いていますので、システムによって修正をたどって'! 'を追加することができます – Tj3n
ありがとうございます。別の問題が発生しました。最初のpickerViewで値を選択すると、2番目のpickerViewの対応する値が削除されます。最初のpickerViewで同じ値を再選択すると、エラーが発生しました。 –