

UITextFieldの入力にPickerを使う方法はわかるですが、初期値の設定がうまくいかず困っています。

ソースコードは後述の様な概要で、他のViewでButtonをTapしConditionViewControllerに遷移してきます。その際に前のViewでTapしたButtonの種類に応じて、初期値をPckerに設定したいと思っています。現状のソースコードでエラー無く動いています。後述には関係なさそうなコードは省略しています。

ネットやgithubで検索したところ、TextFieldを使わない状態でのPckerでの初期値設定方法は  
簡単に出てくるのですが、TextFieldを使った例が出てこず困っています。

どのようにすればご教示いただきたいです。

環境  
Xcode7.1

コード

[code]

    class ConditionViewController: UIViewController, UIPickerViewDelegate,UIPickerViewDataSource {
    
    @IBOutlet weak var location: UITextField!
    let locationPickerView = UIPickerView()
    override func viewDidLoad() {
        super.viewDidLoad()
        _setPcker()
    
    }
    
    func _setPcker() {
        locationPickerView.delegate = self
        locationPickerView.dataSource = self
        // ここで初期値を設定しているつもりが、設定されない
        locationPickerView.selectRow(0, inComponent: 0, animated: false)
        location.inputView = locationPickerView
    }
    
[/code]


CC BY-SA 3.0
2015-12-31T07:47:05.353
20503
2015-12-31T12:48:33.003
2015-12-31T11:45:11.547
5852
5852
question
ios swift xcode
SwiftでUITextFieldの入力に設定したPickerの初期値の設定方法をご教示ください


こちらで以下のソースを使ってテストしてみましたが、問題なく初期値が設定できています。どこか、他の部分に原因があるのではないでしょうか？ （Xcode 7.2
/ iOS9で確認）

[code]

    import UIKit
    
    class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
    
        @IBOutlet weak var location: UITextField!
        let locationPickerView = UIPickerView()
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            _setPcker()
        }
    
        func _setPcker() {
            locationPickerView.delegate = self
            locationPickerView.dataSource = self
    
            // ここで初期値を設定しているつもりが、設定されない
            locationPickerView.selectRow(5, inComponent: 0, animated: false)
            location.inputView = locationPickerView
        }
    
        func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
            return 1
        }
    
        func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
            return 10
        }
    
        func pickerView(pickerView: UIPickerView, widthForComponent component: Int) -> CGFloat {
            return 120
        }
    
        func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
            return "Item \(row)"
        }
    
        func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
            location.text = "Item \(row)"
        }
    }
    
[/code]

実行時の画面はこんな感じになりました。

[![UIPickerViewが表示された画面](https://i.stack.imgur.com/Msb57.png)](https://i.stack.imgur.com/Msb57.png)


CC BY-SA 3.0
2015-12-31T12:48:33.003
20511
2015-12-31T12:48:33.003
7459
20503
answer