![](/img/trans.png)
[英]SwiftUI: How to have a a new view show every day based on the date with previous views lasting a week
[英]How to show different views based on date
我需要在某一天顯示某個視圖,所以嘗試根據日期來做,但它不起作用,請幫我解決這個問題
...
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
,但我們可以通過@ObservedObject, @Binding
、@Binding、 @StateObject
等不同屬性在子視圖中使用source of truth
。
因此,在您的代碼中缺少代碼源,需要更新視圖。
所以如果你想改變基於天的視圖,那么你需要像這樣初始化
@State let date = current.component(.day, from: self.date)
如果需要,也可以更改下面的代碼,如果僅更改上面的代碼有效,那么您可以使用 go。
struct DateType {
@State var Day: String
var Date: String
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.