【发布时间】:2015-08-28 14:59:43
【问题描述】:
我在我的故事板中创建了一个 UIViewController,里面有一个 UIPickerView。当我执行手动 segue 将此视图控制器显示为弹出框时,弹出框为空。
调试时我看到我的viewDidLoad被调用了,但是没有调用UiPickerViewDataSource和UIPickerViewDelegate函数。
首先,我认为我的 UIPickerView 数据源和委托出现了一些错误。但是我使用 UIViewController 运行我的应用程序,并将 UIPickerView 作为初始视图,并且选择器按预期显示。
picker视图代码如下:
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 在弹出窗口中不起作用吗?
【问题讨论】:
-
这取决于你如何初始化包含pickerView的viewController
-
我不明白你的评论。我没有在代码中初始化 ViewController。它要么是因为它是初始视图而被创建,要么是因为执行了一个segue。我应该在代码中做一些初始化吗?
标签: ios swift ios8 uipickerview popover