2016-04-16 13 views

Antwort

0

Die Lösung, die ich fand, war, die benutzerdefinierte Ansicht (Container) durch Felder programmgesteuert zu ersetzen.

0

Wenn ein View-Controller in einen Behälter in einem Storyboard gesetzt wird, wird ein einbetten segue erstellt. Ihre enthält View-Controller kann Zugriff auf die enthaltenen man über prepareForSegue(), wie folgt aus:

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 
     } 
    } 
} 

Ihre enthält View-Controller kann dann die textField Instanz aber es muss.

+0

Ich habe diese Methode als Code unten verwendet, aber es hat nicht funktioniert. Func prepareForSegue außer Kraft setzen (folgt: UIStoryboardSegue, Absender: ANYOBJECT) { wenn segue.identifier == "segueID" { wenn lassen containedViewController = segue.destinationViewController wie? firstViewController { containedViewController.varfirstview = TextField.text } } } – cwilliamsz

+0

'segue.destinationViewController als? firstViewController' sollte nicht einmal kompiliert werden. – NRitH

+0

Ich verstehe es nicht. Ich habe mit diesem Beispiel gearbeitet, aber du hast alle Möglichkeiten gesehen, wie die Rückkehr null ist. Selbst wenn man versucht, den Text in die eigene Ansicht zu bringen, ist die Rendite gleich Null. – cwilliamsz

Verwandte Themen