swiftui - 如何根据日期显示不同的视图
问题描述
我需要在某一天显示某个视图,所以尝试根据日期来做,但它不起作用,请帮我解决这个问题
...
func UpdateData() {
let current = Calendar.current
let date = current.component(.day, from: self.date)
let weekDay = current.component(.weekday, from: self.date)
let day = current.weekdaySymbols[weekDay - 1]
self.data = DateType(Day: day, Date: "\(date)")
}
struct DateType {
var Day: String
var Date: String
}
var body: some View {
ZStack {
if self.data.Day == DAY_1 {. // <- here is my if statement
WorkOutView()}
}
}
解决方案
好的,让我从基础开始 -
首先也是最重要的规则,如果您需要更新您需要使用的任何视图source of truth
并且是@State
,但我们可以source of truth
通过不同的属性在子视图中使用@ObservedObject, @Binding
, @StateObject
。
因此,在您的代码中缺少代码源,需要更新视图。
所以如果你想改变基于天的视图,那么你需要像这样初始化
@State let date = current.component(.day, from: self.date)
如果需要,也可以更改下面的代码,如果只更改上面的代码有效,那么你很高兴。
struct DateType {
@State var Day: String
var Date: String
}
推荐阅读
- javascript - 即使使用回调和 handleFunction,setState 也不会更新状态 - ReactJs
- tensorflow - 在 Keras 中将变压器输出连接到 CNN 输入的问题
- java - 如何迭代地创建和附加到 JSON 文件?
- scipy - 学生 cdf 和正常 ppf 精度
- c# - 在 DataTemplate 中使用时,行为 DependencyProperty 不更新 ViewModel
- sql - 输出数组类型列
- java - 用于转换器的 Spring Cloud AWS SQSListener 拦截器
- apache-nifi - 如何使用 jolt 从给定的字符串数组中删除匹配的元素?
- spring-boot - Spring数据和ElasticSearch,我如何搜索整个对象?
- javascript - 如何使用 JS 在 Illustrator 中获取路径上点的坐标?