Events SwiftUI如何在@Published var发生变化时获取事件

Events SwiftUI如何在@Published var发生变化时获取事件,events,triggers,swiftui,Events,Triggers,Swiftui,我使用库管理器显示带有日期范围选择器的日历。但如果参数rkManager.endDate从nil设置为日期,则无法获取事件 如果设置了范围,我想激活和停用dateRange的addButton 如果发生更改,我希望从中获取触发器的对象: class RKManager : ObservableObject { @Published var startDate: Date! = nil @Published var endDate: Date! = nil 现在我的观点是: im

我使用库管理器显示带有日期范围选择器的日历。但如果参数rkManager.endDate从nil设置为日期,则无法获取事件

如果设置了范围,我想激活和停用dateRange的addButton

如果发生更改,我希望从中获取触发器的对象:

class RKManager : ObservableObject {
    @Published var startDate: Date! = nil
    @Published var endDate: Date! = nil
现在我的观点是:

import SwiftUI

struct DateRangeView: View {

    @State var rkManager = RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: Date().addingTimeInterval(60*60*24*365), mode: 1)

    @State private var addNewDateRangeIsDisabled: Bool = true


    var body: some View {
        VStack(alignment: .leading) {
            RKViewController(isPresented: .constant(false), rkManager: self.rkManager )


            Button(action: {
                if self.rkManager.endDate != nil
                    &&  self.rkManager.startDate != nil
                {
                    self.addNewDateRange()
                }
            }) {
                HStack {
                    Image(systemName: "plus.circle.fill")
                        .resizable()
                        .frame(width: 20, height: 20)
                    Text("Add new DateRange")
                }
            }
            .padding()

            .disabled(self.rkManager.endDate == nil) // --> here i want to change if the value changed
        }.navigationBarTitle("TestRoomName", displayMode: .inline)

    }

observeObject
应在视图中由
ObservedObject
动态属性包装表示,以便在发布属性更改时更新视图

这是修理

struct DateRangeView: View {

    @ObservedObject var rkManager = RKManager(calendar: Calendar.current, minimumDate: Date(), maximumDate: Date().addingTimeInterval(60*60*24*365), mode: 1)

   // ... other code