Swift 检查UITableViewCell内的UITextField是否为空
我有一个自定义单元格,其中的Swift 检查UITableViewCell内的UITextField是否为空,swift,uitableview,delegates,uitextfield,protocols,Swift,Uitableview,Delegates,Uitextfield,Protocols,我有一个自定义单元格,其中的UITextField作为子视图。我想检查此UITextField是否为空 有没有办法做到这一点,或者我需要实现一个协议来传递给ViewController 自定义单元类 视图控制器 更新 我已经实现了一个小协议,如果titleTextField为空或不为空,则传递bool值,但它仍然没有启用barbuttonItem 自定义单元类 视图控制器 在标题单元格中执行UITextFieldDelegate,分配titleTextField.delegate=self,然后
UITextField
作为子视图。我想检查此UITextField
是否为空
有没有办法做到这一点,或者我需要实现一个协议来传递给ViewController
自定义单元类
视图控制器
更新
我已经实现了一个小协议,如果titleTextField为空或不为空,则传递bool值,但它仍然没有启用barbuttonItem
自定义单元类
视图控制器
在标题单元格中执行
UITextFieldDelegate
,分配titleTextField.delegate=self
,然后访问UITextFieldDelegate
检查titleTextField
是否为空。请注意,这是在titleTextField更新或用户输入或删除新标题时发生的values@GovindKumawat如何将结果传递给ViewController?如果UITEXT字段不为空,我需要启用UITABBARIEM。要更改viewController
的值、状态或传递数据,您确实需要实现协议。可以在不使用协议的情况下检查UITextField
。
class TitleCell: UITableViewCell {
var titleTextField = UITextField()
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
contentView.addSubview(titleTextField)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let titleCell = tableView.dequeueReusableCell(withIdentifier: titleCellIdentifier) as! TitleCell
let categoryCell = tableView.dequeueReusableCell(withIdentifier: categoryCellIdentifier)!
switch createEventSections[indexPath.section].items[indexPath.row] {
case .Title:
return titleCell
case .Category:
return categoryCell
}
}
protocol TitleTextFieldDelegate {
func titleTextFieldIsEmpty(isEmpty: Bool)
}
class TitleCell: UITableViewCell {
var titleTextField = UITextField()
var titleTextFieldEmpty: Bool = true
var delegate: TitleTextFieldDelegate?
titleTextField.addTarget(self, action: #selector(titleTextFielddidChangeInput), for: .editingChanged)
@objc func titleTextFielddidChangeInput(textField: UITextField) {
if (titleTextField.text?.isEmpty)! {
titleTextFieldEmpty = true
} else {
titleTextFieldEmpty = false
}
}
titleCell.delegate = self
extension CreateEventController {
func titleTextFieldIsEmpty(isEmpty: Bool) {
if !isEmpty == true {
navigationItem.rightBarButtonItem?.isEnabled = true
} else {
navigationItem.rightBarButtonItem?.isEnabled = false
}
}
}