【问题标题】:How to create an alert with DatePicker in SwiftUI如何在 SwiftUI 中使用 DatePicker 创建警报
【发布时间】:2020-09-01 00:46:45
【问题描述】:

我想在警报视图或操作表视图中显示DatePicker,但我找不到任何资源来执行此操作。

我想要下面的视图。

感谢您的帮助

【问题讨论】:

  • 在 swiftui 中包装一个 UIAlertController 视图
  • @PranavKasetti 我知道,但我无法在其中使用 UIDatePicker。如果您能提供帮助,我将不胜感激。
  • 自 5 个月以来没有人解决这个问题?

标签: ios swiftui


【解决方案1】:

Apple 实际上不鼓励你想要的东西(根据this answer)。这可能就是您自己找不到任何示例的原因。

这是一个可能的解决方案:

struct ContentView: View {
    @State var selectedDate = Date()

    static let formatter: DateFormatter = {
        let formatter = DateFormatter()
        formatter.setLocalizedDateFormatFromTemplate("yyMMddhhmm")
        return formatter
    }()

    var body: some View {
        VStack {
            Text("Selected date: \(selectedDate, formatter: Self.formatter)")
            Button("Show action sheet") {
                self.showDatePickerAlert()
            }
        }
    }

    func showDatePickerAlert() {
        let alertVC = UIAlertController(title: "\n\n\n\n\n\n\n\n\n", message: nil, preferredStyle: .actionSheet)
        let datePicker: UIDatePicker = UIDatePicker()
        alertVC.view.addSubview(datePicker)

        let okAction = UIAlertAction(title: "OK", style: .default) { _ in
            self.selectedDate = datePicker.date
        }
        alertVC.addAction(okAction)
        let cancelAction = UIAlertAction(title: "Cancel", style: .cancel)
        alertVC.addAction(cancelAction)

        if let viewController = UIApplication.shared.windows.first?.rootViewController {
            viewController.present(alertVC, animated: true, completion: nil)
        }
    }
}

这使用来自this answer"\n\n\n\n\n\n\n\n\n" hack。

【讨论】:

  • 很高兴知道这种方法是否通过了 Apple Store 审查。
猜你喜欢
  • 1970-01-01
  • 2020-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多