2016-04-16 3 views
0

Собственный два контроллера просмотра является вторым контейнером. При попытке получить текстовое поле текст, который находится в контейнере, я получаю нулевое значение.Есть ли способ получить текстовую информацию о контейнере?

Есть ли способ получить текстовую информацию о контейнере?

print

ответ

0

Решение, которое я нашел, это заменить программный вид (контейнер) полями.

0

Когда один вид контроллер помещается в контейнер в раскадровке, код вставки Segue создается. Ваш содержащий контроллер представления может получить доступ к одному через содержащуюся prepareForSegue(), как это:

var weak containedTextField: UITextField! 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "<whatever-ID-you-set-on-your-segue>" { 
     if let containedViewController = segue.destinationViewController as? <your-embedded-view-controller's-type> { 
      containedTextField = containedViewController.textField 
     } 
    } 
} 

Ваш содержащий контроллер представления может использовать экземпляр textField однако это необходимо.

+0

Я использовал этот метод в качестве кода ниже, но он не работал. Func переопределить prepareForSegue (следующим образом: UIStoryboardSegue, отправитель: AnyObject) { , если segue.identifier == "segueID" { , если позволить containedViewController = segue.destinationViewController, как? firstViewController { containedViewController.varfirstview = TextField.text } }} – cwilliamsz

+0

'segue.destinationViewController, как? firstViewController' даже не компилируется. – NRitH

+0

Я не понимаю. Я работал с этим примером, вы пошли, хотя все пути к нулю. Даже пытаясь получить текст в собственном представлении, возврат равен нулю. – cwilliamsz

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