Как создать текст, в котором будет отображаться текущая дата, но после выбора даты вместо нее будет отображаться выбранная дата? Использование SwiftUI. Спасибо - PullRequest
0 голосов
/ 17 февраля 2020

Я новичок в программировании и 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)

            }

1 Ответ

0 голосов
/ 17 февраля 2020

Вы можете попробовать что-то вроде этого:

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

Это проверяет, выбрал ли пользователь дату, и будет показывать текущую дату, пока пользователь не выберет ее. Таким образом, даже если они посмотрят на календарь и не выберут дату, она все равно покажет текущую дату.

...