Цель состоит в том, чтобы иметь несколько представлений с собственными контроллерами (например, это может быть представление с 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?
Заранее спасибо, Сергей