Я создал UIViewController в своем раскадровке с UIPickerView внутри. Когда я выполняю ручной segue, чтобы отобразить этот контроллер представления как popover, popover пуст.UIPickerView не отображается в popover
При отладке я вижу, что вызывается мой viewDidLoad, но функции UiPickerViewDataSource и UIPickerViewDelegate не вызываются.
Сначала я думал, что допустил ошибку с моим источником данных и делегатом UIPickerView. Но я запускал свое приложение с UIViewController с UIPickerView в качестве начального представления, и сборщик был показан как ожидалось.
Код выбора режима просмотра выглядит следующим образом:
import UIKit
class PickerVC: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet weak var pickerView: UIPickerView!
var pickerDataSource = ["White", "Red", "Green", "Blue"];
override func viewDidLoad() {
super.viewDidLoad()
}
// MARK: - UIPickerViewDataSource
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerDataSource.count;
}
// MARK: - UIPickerViewDelegate
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return pickerDataSource[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
if(row == 0) {
self.view.backgroundColor = UIColor.whiteColor();
} else if(row == 1) {
self.view.backgroundColor = UIColor.redColor();
} else if(row == 2) {
self.view.backgroundColor = UIColor.greenColor();
} else {
self.view.backgroundColor = UIColor.blueColor();
}
}
}
Может кто-то объяснить, почему UIPickerView не работает в пирог?
Это зависит от того, как вы запускаете viewController, который содержит pickerView – dopcn
Я не понимаю ваш комментарий. Я не запускаю ViewController в коде. Он создается либо потому, что он является исходным, либо потому, что выполняется segue. Должен ли я инициализировать код? – Leontien