gpt4 book ai didi

Swift 将 DatePicker 日期更改为 Firebase

转载 作者:行者123 更新时间:2023-11-28 15:54:25 32 4
gpt4 key购买 nike

在我的应用中,您点击一个按钮,事件名称和事件位置就会添加到 Firebase。我还想添加一个选定的时间,您也将在 Firebase 中执行该事件。为此,我创建了一个 DatePicker 以在单击按钮时弹出,我还设法将其转换为字符串并上传到 Firebase。

我遇到的问题是它上传到 Firebase 的时间始终是当前时间,我说我需要向 DatePicker 添加一个操作以允许上传所选时间是否正确?如果是这样,我该怎么做?

 func handleAddAgenda(){

var datePicker: UIDatePicker = UIDatePicker()
datePicker.datePickerMode = UIDatePickerMode.DateAndTime
//datePicker.addTarget(self, action: #selector(dateChanged), forControlEvents: UIControlEvents.ValueChanged)
datePicker.frame = CGRectMake(0, 0, 250, 460)
datePicker.backgroundColor = UIColor.whiteColor()
addSubview(datePicker)

class ActDate: NSObject {
var date: String?
}

var actDate: ActDate?

if actDate == nil {
actDate = ActDate()
}


let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "hh:mm a"
actDate?.date = dateFormatter.stringFromDate(datePicker.date)
print(datePicker.date)

let userID = FIRAuth.auth()?.currentUser?.uid
let ref = FIRDatabase.database().reference().child("users").child(userID!).child("Agenda")
let childRef = ref.childByAutoId()
let values = ["activity": activityName.text!, "location": distance.text!, "date": actDate!.date!]
childRef.updateChildValues(values)
}

最佳答案

是的,您需要添加一些操作方法来在选择 datePicker 日期时更新值。这当然只有在您将日期选择器设为整个类的属性以便在新方法中获取 datePicker.date 时才有效。

viewDidLoad 中的类似内容:

datePicker.datePickerMode = UIDatePickerMode.DateAndTime
datePicker.frame = CGRectMake(0, 0, 250, 460)
datePicker.backgroundColor = UIColor.whiteColor()
myDatePicker.addTarget(self, action: #selector(dateChanged), for: .valueChanged)
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "hh:mm a"
actDate?.date = dateFormatter.stringFromDate(datePicker.date)

然后你可以将你的handleAgenda简化为:

func handleAddAgenda(){
addSubview(datePicker)
print(datePicker.date)
}

最后在方法中进行 FireBase 更新:

func dateChanged() {
if let userID = FIRAuth.auth()?.currentUser?.uid {
let ref = FIRDatabase.database().reference().child("users").child(userID).child("Agenda")
let childRef = ref.childByAutoId()
if let activityName = activityName.text, let distance = distance.text, let date = datePicker.date {
let values = ["activity": activityName, "location": distance, "date": date]
childRef.updateChildValues(values)
}
}
}

关于Swift 将 DatePicker 日期更改为 Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41967670/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com