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


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


实例方法

sheet(item:onDismiss:content:)

使用给定项目作为工作表内容的数据源呈现工作表。

声明

func sheet<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

返回工作表内容的闭包。

详述

当您需要使用来自自定义数据源的内容呈现模式视图时,请使用此方法。下面的示例显示了一个自定义数据源 InventoryItemcontent 闭包用于填充操作表向用户显示的显示:


struct ShowPartDetail: View {
    @State var sheetDetail: InventoryItem?
    var body: some View {
        Button("Show Part Details") {
            sheetDetail = InventoryItem(
                id: "0123456789",
                partNumber: "Z-1234A",
                quantity: 100,
                name: "Widget")
        }
        .sheet(item: $sheetDetail,
               onDismiss: didDismiss) { detail in
            VStack(alignment: .leading, spacing: 20) {
                Text("Part Number: \(detail.partNumber)")
                Text("Name: \(detail.name)")
                Text("Quantity On-Hand: \(detail.quantity)")
            }
            .onTapGesture {
                sheetDetail = nil
            }
        }
    }


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


struct InventoryItem: Identifiable {
    var id: String
    let partNumber: String
    let quantity: Int
    let name: String
}

可用版本

iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+

相关用法


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