为什么日期选择器没有隐藏?

时间:2019-12-25 14:11:39

标签: ios swift datepicker

我有一个带有日期选择器的文本字段。我用以下代码创建了日期选择器。

func createPicker(with type: UIDatePicker.Mode) -> UIDatePicker {
    let datePicker = UIDatePicker(frame: CGRect(x: 0, y: 0, width: 400, height: 216))
    datePicker.datePickerMode = type
    datePicker.backgroundColor = UIColor.appColor(.bgFront)!
    datePicker.setValue(UIColor.appColor(.mainText)!, forKey: "textColor")
    return datePicker
}

我的UITextField由自定义类创建。我已经实现了以下在日期选择器上方添加工具栏的方法。

let toolBar = UIToolbar(frame: CGRect(x: 0, y: 0, width: 300, height: 100))
toolBar.sizeToFit()
let doneButton = UIBarButtonItem(title: "Ok", style: .plain, target: self, action: #selector(doneClick(_:)))
doneButton.tag = withTagNumber
let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelClick(_:)))
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: true)
toolBar.isUserInteractionEnabled = true
self.inputAccessoryView = toolBar

然后在我的viewDidLoad方法中实现了callTimeTf.inputView = timePicker。这样,当我单击相关的UITextField时,它会显示我的日期选择器。到这里都还好。另外,在同一页面中,我有2个按钮用于显示另一个视图控制器。但是,当我单击这些按钮之一时,我的UIPickerView没有隐藏或从视图层次结构中删除。我尝试过view.endEditing(true)callTimeTf.resignFirstResponder()仍然保留在我的视图控制器上。我还尝试了picker.removeFromSuperview(),它删除了选择器,但没有删除我在UITextField内创建的工具栏。我不想将其从视图中删除,因为当我返回UIViewController()时,我将再次使用它。当提供另一个视图控制器或关闭现有视图控制器时,如何隐藏timePicker?

0 个答案:

没有答案
相关问题