如何根据日期显示不同的视图

时间:2020-07-07 11:45:57

标签: swiftui swiftdate

我需要在特定日期显示特定视图,因此尝试根据日期进行显示,但并没有 工作,请帮我解决这个问题??

  ...
  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()}

  }
}

1 个答案:

答案 0 :(得分:0)

好吧,让我从基础开始-

首要原则是,如果您需要更新任何视图,则需要使用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
  }