首页 > 解决方案 > 如何创建一个显示当前日期的文本,但一旦选择日期,它将显示所选日期?使用 SwiftUI。谢谢

问题描述

我是编程和 SwiftUI 的新手,我正在尝试学习如何创建个人日记应用程序。

我想要一个文本来显示启动时的当前日期,但是当您在日历上选择不同的日期时,它将显示选定的日期。我尝试使用 if else 条件,但它不能正常工作。我认为这是因为我使用了“if singleisPresented != false”所以它只在我单击按钮时出现。但我应该改用什么?非常感谢你们。

我正在使用 RKCalendar ( https://github.com/RaffiKian/RKCalendar ) 来帮助我处理日历。

                Button(action: { self.singleIsPresented.toggle() }) {
                Image(systemName: "calendar")
                    .foregroundColor(.black)
                    .frame(width: 18, height: 25)
            }
            .sheet(isPresented: self.$singleIsPresented, content: {
                RKViewController(isPresented: self.$singleIsPresented, rkManager: self.rkManager)})
                .onAppear(perform: startUp)
                .navigationViewStyle(StackNavigationViewStyle())

                if singleIsPresented != false {
                Text(self.getTextFromDate(date: self.rkManager.selectedDate))
                    .font(.headline)
                    .fontWeight(.bold)

            } else {
                Text(currentDate(date: Date()))
                    .font(.headline)
                .fontWeight(.bold)

            }

标签: swiftuiswift5

解决方案


你可以尝试这样的事情:

Button(action: { self.singleIsPresented.toggle() }) {
                Text("Example 1 - Single Date Selection").foregroundColor(.blue)
            }
            .sheet(isPresented: self.$singleIsPresented, content: {
                RKViewController(isPresented: self.$singleIsPresented, rkManager: self.rkManager1)})

            if rkManager1.selectedDate != nil {
            Text(self.getTextFromDate(date: self.rkManager1.selectedDate))
            } else {
                Text("\(Date())")
            }

这将检查用户是否选择了一个日期,并将显示当前日期,直到用户选择一个。这样,即使他们查看日历并且没有选择日期,它仍然会显示当前日期。


推荐阅读