返回

ios-SwiftUI日期选择器打破了工作表?

发布时间:2022-05-10 12:56:52 240
# android

设想:

RootScreen 以模态方式呈现 DateScreen.sheet

DateScreen 有一个带有 CompactDatePickerStyle() 的 DatePicker 和一个关闭模式的按钮

用户打开 DatePicker

用户点击 DatePicker 以调出 NumPad 进行手动键盘输入

用户按下按钮以关闭模式

SwiftUI 会认为.sheet被解雇了,但实际上,只有 DatePicker 的模态被解雇了。

最小代码示例:

struct DateScreen: View {
    @Binding var isPresented: Bool
    @State var date: Date = Date()

    var body: some View {
        NavigationView {
            VStack {
                DatePicker("", selection: $date, displayedComponents: [.hourAndMinute])
                    .datePickerStyle(CompactDatePickerStyle())
            }
            .navigationBarItems(leading: Button("Dismiss") {
                isPresented = false
            })
        }
    }
}

@main
struct Main: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
    @State var isPresenting: Bool = false

    var body: some Scene {
        WindowGroup {
            Button("Present modal", action: {
                isPresenting = true
            })
                .sheet(isPresented: $isPresenting, content: {
                    DateScreen(isPresented: $isPresenting)
                })
        }
    }
}

Gif显示被破坏的行为:

注意,如果用户不打开NumPad,它似乎工作得很好。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(2)
按点赞数排序
用户头像