SwiftでPickerViewを配置して項目の選択を実装する

  1. storyboardでPickerViewをView Controllerに配置する
  2. 配置したViewController class のベースクラスに、UIPickerViewDelegate と UIPickerViewDataSource を追加する
  3. ViewController class にdelegateを実装
  4. storyboardのPickerViewとViewController classを接続する
  5. 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。