Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 检查UITableViewCell内的UITextField是否为空_Swift_Uitableview_Delegates_Uitextfield_Protocols - Fatal编程技术网

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