【发布时间】:2015-03-20 13:10:25
【问题描述】:
我想知道,是否可以使用 Swift 遍历 UIViewController 的所有出口。
具体来说,我想检查每个文本字段是否都由用户填写。
【问题讨论】:
标签: swift uiviewcontroller iboutlet
我想知道,是否可以使用 Swift 遍历 UIViewController 的所有出口。
具体来说,我想检查每个文本字段是否都由用户填写。
【问题讨论】:
标签: swift uiviewcontroller iboutlet
这就是 Outlet Collections 的用途。在 InterfaceBuilder 的同一个 Outlet 集合中拖动所有文本字段,并在类文件中为该集合创建一个 @IBOutlet:
要在 InterfaceBuilder 中创建 outlet 集合,按住 ctrl 并从第一个 UITextField 拖动到助手编辑器中的类文件。然后选择Outlet Collection:
按住 ctrl 并拖动下一个 UITextField 在那个 @IBOutlet 上将其添加到集合中:
对所有文本字段重复此操作。
@IBOutlet var textFields: [UITextField]!
func checkTextFields() {
for textField in self.textFields {
... // do your checks
}
}
【讨论】:
我认为您必须手动执行此操作,或者将它们添加到数组并循环遍历该数组,或者您可以遍历视图的所有子视图并检查它是否是文本字段。
for view in self.view.subviews as [UIView] {
if let textField = view as? UITextField {
if textField.text == "" {
// textfield is empty
return
}
}
}
【讨论】:
textField.text.isEmpty 而不是 == ""