UIPickerView没有显示在弹出窗口中

时间:2015-06-12 14:39:47

标签: ios swift ios8 uipickerview popover

我在故事板中创建了一个UIViewController,里面有一个UIPickerView。当我执行手动segue将此视图控制器显示为弹出窗口时,弹出窗口为空。

调试时我看到我的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无法在popover中运行吗?

1 个答案:

答案 0 :(得分:0)

我终于找到了我的错误。在我的故事板中,我正在为常规x常规尺寸等级的iPad设计。弹出窗口显示任何x any的大小类。因此,观点一直空着。我设计了尺寸类中任何x任意的popover视图控制器,现在它正在工作。