19846


当方初心者です。  
予めRealmなどのDBに保存しておいたDataをPickerViewの選択肢として表示することは可能ですか？  
人物名を登録画面で入力し、それを別画面で参照して選択したいのですが、ググッてみても参考になるサイトが見つかりません。  
お分かりになる方がいらっしゃれば、ご教授下さい。  
お願いします。


CC BY-SA 3.0
2015-12-09T13:23:35.933
19819
2015-12-10T07:18:00.750
13156
question
swift
PickerViewにRealmなどのDBから引っ張ってきたDataを選択肢として表示できますか？


あなたがどこで困っているのかわからないので、これが回答になるかはわかりませんが、下記はRealmに`Peson`というテーブルで人物名が格納されてるとして、そのデータをビューが表示された時に読み込んでPickerViewに表示するサンプルです。

[code]

    import UIKit
    import RealmSwift
    
    class Person: Object {
        dynamic var name = ""
    }
    
    class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
        @IBOutlet weak var pickerView: UIPickerView!
    
        var token: NotificationToken?
        var people: Results<Person>?
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            let realm = try! Realm()
            people = realm.objects(Person)
    
            token = realm.addNotificationBlock { [weak self] (notification, realm) -> Void in
                self?.pickerView.reloadAllComponents()
            }
        }
    
        func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
            return 1
        }
    
        func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
            if let people = people {
                return people.count
            }
            return 0
        }
    
        func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
            if let people = people {
                return people[row].name
            }
            return nil
        }
    }
    
[/code]


CC BY-SA 3.0
2015-12-10T07:18:00.750
19846
2015-12-10T07:18:00.750
5519
19819
answer