SwiftでPickerViewを配置して項目の選択を実装する
- storyboardでPickerViewをView Controllerに配置する
- 配置したViewController class のベースクラスに、UIPickerViewDelegate と UIPickerViewDataSource を追加する
- ViewController class にdelegateを実装
- storyboardのPickerViewとViewController classを接続する
- PickerViewのdelegate・data sourceにViewController class(のインスタンス)を設定する
- 配置したViewController class のベースクラスに、UIPickerViewDelegate と UIPickerViewDataSource を追加する
class ViewController: UIViewController { 〜 }
↓
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource { 〜 }
※この時点でerrorが出る(追加したベースクラスに応じて実装が必要な関数の定義がないため)
- ViewController class にdelegateを実装
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { return 1 }
※buildに必須
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return 2 }
※buildに必須
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! { return "test" }
※あった方が良い、後で使う
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { }
※後で使う
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. }
↓
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.pickerDetectMode.delegate = self self.pickerDetectMode.dataSource = self }
これで、buildが通り、実行したらstoryboardでPickerViewを置いた位置に1列でtest/testと同じ2行の項目のPickerが表示されればOK。