2015-06-12 3 views
0

Я создал 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 не работает в пирог?

+0

Это зависит от того, как вы запускаете viewController, который содержит pickerView – dopcn

+0

Я не понимаю ваш комментарий. Я не запускаю ViewController в коде. Он создается либо потому, что он является исходным, либо потому, что выполняется segue. Должен ли я инициализировать код? – Leontien

ответ

0

Я наконец нашел свою ошибку. В моем раскадровке я специально разрабатывал iPad для обычного размера x обычного размера. Попсор показывает класс размера любой x любой. Поэтому представление оставалось пустым. Я разработал контроллер popover view в классе размеров любой x любой, и теперь он работает.

Смежные вопросы