SwiftUI - @Binding:来自 DatePickerView 的字符串
SwiftUI - @Binding:String from DatePickerView
我正在尝试获取从 SwiftUI 中的 DatePickerView 返回的 @Binding:String 值。
谁能告诉我格式化代码应该放在哪里?..到目前为止,我已经在 .onAppear 中尝试过,它会生成一个初始值但不会更新 (NS)...还在 body 和 .onDisappear 中尝试过.. 但没有返回任何内容 ...
struct DateView: View {
@Binding var dateString: String
@State var selectedDate: Date = Date()
let formatter = DateFormatter()
var body: some View {
formatter.dateFormat = "d MMM y"
dateString = formatter.string(from: selectedDate)
print(self.dateString)
return DatePicker(selection: $selectedDate, displayedComponents: .date) {
Text("Select a date")
}.labelsHidden()
}
}
尝试过
struct DateView: View {
@Binding var dateString: String
@State var selectedDate: Date = Date()
let formatter = DateFormatter()
var body: some View {
DatePicker(selection: $selectedDate, displayedComponents: .date) {
Text("Select a date")
}.labelsHidden()
.onAppear(){
self.formatter.dateFormat = "d MMM y"
self.dateString = self.formatter.string(from: self.selectedDate)
print(self.dateString)
}
}
}
这是代码。
struct ContentView: View {
@ObservedObject var value = SelectionChnage()
let formatter = DateFormatter()
var body: some View {
DatePicker(selection: $value.selection, displayedComponents: .date) {
Text("Select a date")
}.labelsHidden()
}
}
final class SelectionChnage: ObservableObject {
var selection: Date = Date() {
didSet {
date_formate(slectedate: selection)
}
}
}
func date_formate(slectedate: Date) {
let formatter = DateFormatter()
formatter.dateFormat = "d MMM y"
let dateString = formatter.string(from: slectedate)
print(dateString)
}
我正在尝试获取从 SwiftUI 中的 DatePickerView 返回的 @Binding:String 值。
谁能告诉我格式化代码应该放在哪里?..到目前为止,我已经在 .onAppear 中尝试过,它会生成一个初始值但不会更新 (NS)...还在 body 和 .onDisappear 中尝试过.. 但没有返回任何内容 ...
struct DateView: View {
@Binding var dateString: String
@State var selectedDate: Date = Date()
let formatter = DateFormatter()
var body: some View {
formatter.dateFormat = "d MMM y"
dateString = formatter.string(from: selectedDate)
print(self.dateString)
return DatePicker(selection: $selectedDate, displayedComponents: .date) {
Text("Select a date")
}.labelsHidden()
}
}
尝试过
struct DateView: View {
@Binding var dateString: String
@State var selectedDate: Date = Date()
let formatter = DateFormatter()
var body: some View {
DatePicker(selection: $selectedDate, displayedComponents: .date) {
Text("Select a date")
}.labelsHidden()
.onAppear(){
self.formatter.dateFormat = "d MMM y"
self.dateString = self.formatter.string(from: self.selectedDate)
print(self.dateString)
}
}
}
这是代码。
struct ContentView: View {
@ObservedObject var value = SelectionChnage()
let formatter = DateFormatter()
var body: some View {
DatePicker(selection: $value.selection, displayedComponents: .date) {
Text("Select a date")
}.labelsHidden()
}
}
final class SelectionChnage: ObservableObject {
var selection: Date = Date() {
didSet {
date_formate(slectedate: selection)
}
}
}
func date_formate(slectedate: Date) {
let formatter = DateFormatter()
formatter.dateFormat = "d MMM y"
let dateString = formatter.string(from: slectedate)
print(dateString)
}