Программное добавление контроллеров представления в представление стека

Цель состоит в том, чтобы иметь несколько представлений с собственными контроллерами (например, это может быть представление с PickerView, меткой и текстовым полем поиска) и основное представление с контроллером, который будет создавать эти контроллеры.

Я попытался использовать StackView, чтобы добавить эти контроллеры в основное представление. Методы внутри контроллеров вызываются успешно, но представление стека пусто.

Код контроля над детьми:

class LookupControl: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet weak var picker: UIPickerView?

var pickerDataSource = ["t1", "t2", "t3"];

override func viewDidLoad() {
    super.viewDidLoad()
    picker?.dataSource = self
    picker?.delegate = self
}

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
    return 1
 }

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return pickerDataSource.count

}

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
   return pickerDataSource[row]
}

}

Код родительского контроля:

class ContactDetailViewController: UIViewController, SubstitutableDetailViewController {

@IBOutlet var stackView: UIStackView?

override func viewDidLoad() {
    super.viewDidLoad()

    let lc = LookupControl(nibName: "LookupView", bundle: nil)
    self.stackView?.addArrangedSubview(lc.view)
}

}

Можно ли добавить UIViewControllers в StackView? Как лучше всего это сделать в iOS?

Заранее спасибо, Сергей


person Sergey M.    schedule 19.07.2016    source источник
comment
Это может быть полезно: stackoverflow.com/questions/17011579/   -  person fiks    schedule 19.07.2016
comment
не уверен, что это может мне помочь. Мне нужно, чтобы все контроллеры отвечали за действия и меняли размер родительских контейнеров. Могу ошибаться, но в данном примере с ним одновременно может работать только один контроллер   -  person Sergey M.    schedule 19.07.2016