当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Never fullScreenCover(item:onDismiss:content:)用法及代码示例


实例方法

fullScreenCover(item:onDismiss:content:)

使用您提供的绑定作为工作表内容的数据源,呈现一个覆盖尽可能多的屏幕的模式视图。

声明

func fullScreenCover<Item, Content>(
    item: Binding<Item?>,
    onDismiss: (() -> Void)? = nil,
    content: @escaping (Item) -> Content
) -> some View where Item : Identifiable, Content : View

参数

item

绑定到工作表的可选事实来源。当 item 不是 nil 时,系统会将内容传递给修饰符的闭包。您在系统向用户显示的您创建的工作表中显示此内容。如果item 更改,系统将关闭当前显示的工作表并使用相同的过程将其替换为新工作表。

onDismiss

关闭模态视图时要执行的关闭。

content

返回模态视图内容的闭包。

详述

使用此方法可显示尽可能多地覆盖屏幕的模态视图。在下面的示例中,自定义结构 - CoverData - 为全屏视图提供数据,以在用户单击或点击“Present Full-Screen Cover With Data”按钮时显示在 content 闭包中:


struct FullScreenCoverItemOnDismissContent: View {
    @State var coverData: CoverData?
    var body: some View {
        Button("Present Full-Screen Cover With Data") {
            coverData = CoverData(body: "Custom Data")
        }
        .fullScreenCover(item: $coverData,
                         onDismiss: didDismiss) { details in
            VStack(spacing: 20) {
                Text("\(details.body)")
            }
            .onTapGesture {
                coverData = nil
            }
        }
    }


    func didDismiss() {
        // Handle the dismissing action.
    }


}


struct CoverData: Identifiable {
    var id: String {
        return body
    }
    let body: String
}

可用版本

iOS 14.0+, iPadOS 14.0+, Mac Catalyst 14.0+, tvOS 14.0+, watchOS 7.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Never fullScreenCover(item:onDismiss:content:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。