I'm wondering, if it's possible to loop through all the outlets of a UIViewController
with Swift.
Specifically, I want to check if every textfield is filled by the user.
This is what Outlet Collections are for. Drag all your textfields in the same Outlet Collection in InterfaceBuilder and create an @IBOutlet
to that collection in your class file:
To create the outlet collection in InterfaceBuilder, ctrl-drag from the first UITextField
to your class file in the assistant editor. Then choose Outlet Collection:
ctrl-drag the next UITextField
on that @IBOutlet
to add it to the collection:
Repeat that for all your textFields.
@IBOutlet var textFields: [UITextField]!
func checkTextFields() {
for textField in self.textFields {
... // do your checks
}
}
I think you have to manually do it, or add them to array and loop through that array or you can loop through all subviews of your view and check if it's textfield.
for view in self.view.subviews as [UIView] {
if let textField = view as? UITextField {
if textField.text == "" {
// textfield is empty
return
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With