Ich möchte ein Formular validieren, das sich in einem Container in einem übergeordneten Ansichtscontroller befindet. Wie kann ich das Formular validieren (überprüfen Sie, ob alle Felder nicht nil
sind), wenn auf eine Schaltfläche im übergeordneten Ansichts-Controller geklickt wird. Die Schaltfläche hat eine IBOutlet
in der übergeordneten Ansicht Controller, der eine Methode aus der Klasse des Formulars aufruft.swift - Überprüfen Sie, ob uitextfield in einer anderen Klasse leer ist
@IBAction func submitOrder(sender: AnyObject) {
let formView = FormViewController()
formView.getFieldValues()
}
Das Verfahren ist
func getFieldValues() {
if (self.nameField.text == "") {
print("Name field is empty")
}
}
The nameField
in der untergeordneten Ansicht hat die IBOutlet wird
@IBOutlet weak var nameField: UITextField!
Wenn die Taste in der übergeordneten Ansicht Controller klickte ich die klassischen Fehler angezeigt ,
fatal error: unexpectedly found nil while unwrapping an Optional value
Das hat also etwas mit Optionalen zu tun, oder der Eltern-View-Controller erkennt die Textfelder in der Container-Ansicht nicht.
zu erhalten Die untergeordnete Ansicht in der Containeransicht ist eine Unterklasse von UITableView, da es statische Zellen hat. Wie kann ich eine Instanz von FormViewController erstellen, die eine Verbindung mit der Containeransicht herstellt, die eine UIView ist? – tc333
Ziemlich sicher, dass Sie es in den ChildViewControllern der Eltern finden können - wahrscheinlich hat nur ein Objekt - Sie können sehen, ob es in ist. –