如何在SwiftUI中使用DatePicker创建警报

5
我想在警告视图或操作表视图中显示DatePicker,但我找不到任何资源来实现它。
我想要以下视图。
感谢您的帮助。 enter image description here

在SwiftUI中包装一个UIAlertController视图 - Pranav Kasetti
@PranavKasetti 我知道,但我无法在其中使用UIDatePicker。如果您能帮忙,我将不胜感激。 - Akash Chaudhary
五个月以来,没有人解决这个问题吗? - LetsGoBrandon
1个回答

2

根据这个回答,苹果公司并不鼓励您所需的功能。这可能是为什么您无法找到任何示例的原因。

以下是一种可能的解决方案:

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

这里使用了来自这个回答"\n\n\n\n\n\n\n\n\n"hack技巧。


很有趣的是想知道这种方法是否能通过苹果商店的审核。 - l --marc l
@pawello2222 如何使用 .inline,它显示为只读。 - Muju

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接