Ios Swift 3使用UINavBar按钮显示以编程方式创建的日期选择器
我以编程方式创建了一个Ios Swift 3使用UINavBar按钮显示以编程方式创建的日期选择器,ios,swift,datepicker,Ios,Swift,Datepicker,我以编程方式创建了一个UIPickerView,当前我从UITextField调用它。相反,当用户按下导航栏上以编程方式创建的按钮时,我想调用日期选择器。这就是我的datePicker代码当前的样子: func doDatePicker(){ // DatePicker self.datePicker = UIDatePicker(frame:CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 216
UIPickerView
,当前我从UITextField
调用它。相反,当用户按下导航栏上以编程方式创建的按钮时,我想调用日期选择器。这就是我的datePicker
代码当前的样子:
func doDatePicker(){
// DatePicker
self.datePicker = UIDatePicker(frame:CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 216))
self.datePicker?.backgroundColor = UIColor.white
self.datePicker?.datePickerMode = UIDatePickerMode.dateAndTime
HVACText.inputView = self.datePicker
// ToolBar
let toolBar = UIToolbar()
toolBar.barStyle = .default
toolBar.isTranslucent = true
toolBar.tintColor = UIColor(red: 92/255, green: 216/255, blue: 255/255, alpha: 1)
toolBar.sizeToFit()
// Adding Button ToolBar
let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(HVACViewController.doneClick))
let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(HVACViewController.cancelClick))
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false)
toolBar.isUserInteractionEnabled = true
HVACText.inputAccessoryView = toolBar
}
我可以使用该按钮调用一个通用的日期选择器,但我希望用户可以使用“完成”和“取消”按钮。我还希望日期选择器出现在UITableView的底部。我不想离开这景色
任何帮助都将不胜感激
这是所要求的屏幕截图。请注意,该界面是一个正在进行的工作,文本字段将消失
我找到了解决方案,并将代码发布在这里:
class HVACViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate, UNUserNotificationCenterDelegate {
@IBOutlet weak var HVACTable: UITableView!
@IBOutlet weak var reminderCell: UITableViewCell!
let dateFormatter = DateFormatter()
let locale = NSLocale.current
var datePicker : UIDatePicker!
let toolBar = UIToolbar()
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))
self.HVACTable.reloadData()
//doDatePicker()
}
func addTapped(){
doDatePicker()
}
func doDatePicker(){
// DatePicker
self.datePicker = UIDatePicker(frame:CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 200))
self.datePicker?.backgroundColor = UIColor.white
self.datePicker?.datePickerMode = UIDatePickerMode.dateAndTime
datePicker.center = view.center
view.addSubview(self.datePicker)
// ToolBar
toolBar.barStyle = .default
toolBar.isTranslucent = true
toolBar.tintColor = UIColor(red: 92/255, green: 216/255, blue: 255/255, alpha: 1)
toolBar.sizeToFit()
// Adding Button ToolBar
let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(HVACViewController.doneClick))
let spaceButton = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let cancelButton = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(HVACViewController.cancelClick))
toolBar.setItems([cancelButton, spaceButton, doneButton], animated: true)
toolBar.isUserInteractionEnabled = true
self.view.addSubview(toolBar)
self.toolBar.isHidden = false
}
func doneClick() {
let dateFormatter1 = DateFormatter()
dateFormatter1.dateStyle = .medium
dateFormatter1.timeStyle = .none
setNotification()
//self.datePicker.resignFirstResponder()
datePicker.isHidden = true
self.toolBar.isHidden = true
}
func cancelClick() {
datePicker.isHidden = true
self.toolBar.isHidden = true
}
发生了什么?请提供最终用户界面的屏幕截图。