首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何正确地将“单元格项目”从SwiftUI LazyVGrid传递到.sheet?

在SwiftUI中,可以使用.sheet修饰符将视图呈现为模态视图。要正确地将“单元格项目”从SwiftUI LazyVGrid传递到.sheet,可以按照以下步骤进行操作:

  1. 首先,创建一个绑定变量来跟踪是否显示.sheet视图。例如,可以使用@State修饰符创建一个名为showSheet的布尔变量。
代码语言:txt
复制
@State private var showSheet = false
  1. 在LazyVGrid中的每个单元格项目中,使用Button或其他交互式视图来触发显示.sheet视图的操作。在按钮的操作闭包中,将showSheet变量设置为true。
代码语言:txt
复制
Button(action: {
    showSheet = true
}) {
    // 单元格内容
}
  1. 在LazyVGrid外部,使用.sheet修饰符来创建模态视图。将showSheet绑定到.sheet的isPresented参数,并在.content中定义.sheet的内容。
代码语言:txt
复制
.sheet(isPresented: $showSheet) {
    // .sheet的内容视图
}
  1. 在.sheet的内容视图中,可以访问传递给它的“单元格项目”。可以通过将数据作为参数传递给内容视图的初始化程序来实现。例如,可以创建一个名为item的变量,并在.sheet的内容视图中使用它。
代码语言:txt
复制
.sheet(isPresented: $showSheet) {
    ContentView(item: item)
}
  1. 在.sheet的内容视图中,可以使用传递的“单元格项目”进行必要的操作。可以根据需要在视图中显示和修改数据。

这样,当用户点击LazyVGrid中的单元格项目时,.sheet视图将被呈现,并且可以在.sheet的内容视图中访问和操作传递的数据。

请注意,以上答案是基于SwiftUI的,如果您需要在其他框架或技术中实现类似的功能,可能会有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用 Table 在 SwiftUI 下创建表格

在 WWDC 2022 中,Table 被拓展 iPadOS 平台,让其拥有了更大的施展空间。本文介绍 Table 的用法、分析 Table 的特点以及如何在其他的平台上实现类似的功能。...但相较于 SwiftUI 中的网格容器( LazyVGrid、Grid )来说,Table 本质上更接近于 List 。开发者可以 Table 视为具备列特征的 List 。...Table 与 List 的近似点: 声明逻辑接近 与 LazyVGrid( LazyHGrid )和 Grid 倾向于数据元素放置于一个单元格( Cell )中不同,在 Table 与 List 中...无论单元格中内容的实际高度需求有多大,Table 始终将保持系统给定的默认行高。....font(.system(size: 64)) .frame(height:100) image-20220620181736770 在 iPadOS 下,Table 根据单元格的高度

4K30
  • 关于风险管理,如何思维项目升维项目群?

    MSP毕业学长荆树昆就预习内容进行点评 (产品交付总经理&项目管理办公室主任) 文字版整理如下: ---- 如果我们的风险管理思维,想跳出项目管理的圈子,升维项目群层面,应该思考项目群风险管理与项目风险管理有什么不同...这时我是一个“利己者”,需要的资源,我拿来用就行,不用管别人的项目做得如何。 但是项目群风险管理,我们需要关注所有项目,关注战略层面的风险。 比如说项目群的推进,一定要与战略一致。...如果不一致且扭转不过来,那么项目群就可能就被停掉了。 重点是项目的角度着眼,关注风险聚合 风险聚合可以分为增长和减少两类: (一)增长 分配到每一个项目上的风险,可能都很小,损失可接受。...别人的项目会抵消我的项目群里某些项目的风险。 项目群风险管理,需要为项目风险管理设定标准 如果公司的项目管理成熟度比较低,就谈不上组织级项目管理,也就没有项目群管理的概念。...这在项目层面是绝对想不到的,因为对项目经理而言,一些风险并不影响交付,也不影响成本,只是稍微影响一点质量或时间。 但是这种没什么大不了的风险,在项目群中传递累积后,可能是致命的。

    37010

    肘子的 Swift 周报 | Swift,超越苹果生态!

    SwiftUI 问世以来,社区中不断有开发者尝试将其移植其他平台,尽管声明式 UI 部分的实现相对顺利,但响应式处理一直是难题。...我在过去两年中还了解两款尚未公开的 SwiftUI 复刻框架,其中一款同样面向全平台。 Swift 也未忘记在嵌入式领域的探索。...采用新框架的过程视为项目向更安全、更现代化方向重构的绝佳机会。...文章中不仅阐述了这一概念的实现过程,还附带了一个完整的演示,展现了如何SwiftUI 环境下应用这一技术。...在实际开发中,Edvinas Byla 意识 LazyVGrid 的性能并不理想,且不能满足他对上下文菜单行为的特定需求,因此他决定采用 NSTableView 作为替代方案。

    13310

    掌握 Transaction,实现 SwiftUI 动画的精准控制

    本文通过探讨 Transaction 的原理、作用、创建和分发逻辑等内容,告诉读者如何SwiftUI 中实现更加精准的动画控制,以及需要注意的其他问题。...SwiftUI 会在以下情况下调用隐式动画创建 transaction: 当前视图分支在状态变化时会发生变化 当前视图分支上声明了隐式动画 下面的代码展示隐式动画是如何创建 transaction 并向下传递的...SwiftUI 调用 Text("Hello") 的 .animation 创建了新的 transaction,并向下传递,该 transaction 替换了 VStack 向下传递的 transaction...当传递进来的 transaction 为 nil 时,SwiftUI 会优化调用 .transaction 修饰器闭包的时机。...这样一来,上游传来的 transaction 按照原样沿视图链继续传递,从而保证开发者的动画意图被正确地传递下去。 截止 Xcode 15 beta 2,新版本的修饰符还无法正常工作。

    47620

    Ask Apple 2022 与 SwiftUI 有关的问答(下)

    阅读 The SwiftUI Layout Protocol [11]了解如何创建自定义布局。创建底部开始的滚动视图Q:我如何实现一个在底部对齐的滚动视图,在 macOS 上会不会有糟糕的性能?...目前还没有 API 可以程序化地焦点转至搜索字段。TextField 内容验证Q:如何实现一个只接受数字的 SwiftUI TextField,小数是允许的。...背景扩展安全区域Q:如果我有一个自定义的容器类型,可以接受一个顶部和底部的视图,是否有办法让 API 的调用者所提供的视图的背景扩展安全区域内,同时内容( 如文本或按钮 )保留在安全区域内?...视图的功能分散函数、更小的视图结构以及视图修饰器当中是很好的解决方法。...在 SwiftUI 中,有一个第一版开始就存在但尚未公开的纯 SwiftUI 实现的滚动容器 —— _ScrollView 。

    14.8K30

    SheetKit——SwiftUI模态视图扩展库

    SheetKit——SwiftUI模态视图扩展库 新写了个的SwiftUI Sheet扩展库,添加对可变高度Sheet的支持。...主要因为SwiftUI中重要的视图展示模式:NavigationView、Sheet等都没有迅捷、简便的重置能力。很难通过一两句代码应用程序立即设置成我们想要的视图状态。...源地址[4] SheetKit中每个功能的代码都集中在一两个文件中。如果只需要其中部分的功能,直接在项目中添加对应的文件或许是不错的选择。...更多信息请参阅如何SwiftUI中实现interactiveDismissDisabled[5] SheetKit中的interactiveDismissDisabled为了兼容bottomSheet.../posts/swiftui-multiSheet/ [4] 源地址: https://github.com/fatbobman/SheetKit.git [5] 如何SwiftUI中实现interactiveDismissDisabled

    2.9K20

    使用 SwiftUI 的 Eager Grids

    介绍 早在 2020 年,我们就拥有了在 SwiftUILazyVGrid 和 LazyHGrid)中绘制网格的新视图控件。两年后,我们又获得了另一种在网格(Grid)中显示视图的视图控件。...只需创建一个新的 Xcode 项目 ContentView.swift 文件替换为此 gist 文件中的文件,就可以开始了。...方形六边形的步骤 我们必须某个地方开始,所以我们创建一个方形图像网格,然后逐渐添加代码将我们的简单网格转换为蜂窝。 到现在为止,您应该具备实现转换所需的所有知识。...请注意,单元格的翻转并不是练习的一部分,但我也将其包含在要点中。 以下视频显示了起点以及它如何变成蜂窝: 步骤#1:我们方形图片网格开始。步骤#2:六边形没有 1:1 的尺寸比。...步骤#4:偶数行和奇数行移动到相对的两侧。偏移量是六边形宽度的一半 + 网格水平间距。第 5 步:行需要重叠,因此您需要将行高减少四分之三 (3/4)。为什么是 3/4?

    4.4K20

    如何SwiftUI中实现interactiveDismissDisabled

    如何SwiftUI中实现interactiveDismissDisabled 如想获得更好的阅读体验,可以访问我的博客www.fatbobman.com[1] 本文中我们探讨如何实现一个SwiftUI...3.0中新增功能——interactiveDismissDisabled的增强版;如何创建更SwiftUI化的功能扩展。...需求 由于健康笔记[2]中数据录入都是在Sheet中进行的,为了防止用户在录入过程中由于误操作(使用手势取消Sheet)丢失数据,因此,最初的版本开始,我就一直使用各种手段加强对Sheet的控制。...去年9月,我在文章【在SwiftUI中制作可以控制取消手势的Sheet】[3]中介绍了健康笔记2.0[4]版本的Sheet控制实现方法。...本次一并解决这个问题。

    3.9K40

    老人新兵 —— 一款 iOS APP 的开发手记

    去年( 2019 年 )十一开始进入学习状态, 11 月底,用了两个月的时间,达到了基本具备构建一个完整 app 的能力( 个人认为 ), 11 月 24 开始( Git 上第一个 commit...SwiftUI 给我创建了一个非常高效的环境,在短时间内便可以整个 app 的原型跑起来,但当真正地具体实现以及数据流完全串联起来时才发现一切并不那么简单。...当一个 view 中有基于 ForEach 动态变化的数据时,如果该 view 在 sheet 中,数据变化后会导致触发异常,如果 view Sheet 中提取出来直接显示则无此问题。...SwiftUI 中的多数控件都是采用 bind 的方式来响应及传递数据,设计起来思路会很清晰,不过执行起来会有粘滞感。复杂 Sheet 会尤其明显。所有基于异步的设计响应都会有延时。...我的 app 中有几处 Sheet 弹出的响应就比较慢( view 移出 sheet,使用 NavigationLink 调用显示就很好 ),尤其是退出时的响应更慢。

    2.5K40

    一段因 @State 注入机制所产生的“灵异代码”

    State 注入的优化机制在 SwiftUI 中,对于引用类型,开发者可以通过 @StateObject、@ObservedObject 或 @EnvironmentObject 将其注入视图中。...为了演示上面的论述,我们 Sheet 中的代码用一个符合 View 协议的结构体包装起来,以方便我们观察。...在 ContextView 不包含 Text 的情况下,在 Sheet 显示后,n 的 _wasRead 转变为 true( Sheet 视图显示后,方创建关联 )。...这是因为在 .fullScreenCover 的构造方法中,我们传递的是 show 的 projectedValue( Binding 类型 )由于合并操作的原因,在 Sheet 视图关联 n 后,并不会重新更新...Sheet 视图在求值时,通过 Binding 的 get 方法,获得 n 的最新值。

    1.9K20

    SwiftUI:使用 @EnvironmentObject 环境中读取自定义值

    您已经了解了如何使用@State处理单个视图的局部状态,以及@ObservedObject如何使我们在视图之间传递一个对象,以便我们可以共享它。...如果我们使用@ObservedObject,则需要将我们的对象每个视图传递下一个视图,直到它最终到达可以使用该视图的视图E,这很烦人,因为B,C和D不在乎它。...但是,如果视图A以工作表(sheet)的形式显示视图B,则它们不会自动共享环境数据,因此我们需要手动发送。...现在,您可能想知道SwiftUI如何在.environmentObject(user)和@EnvironmentObject var user: User之间建立连接——如何知道将该对象放入正确的属性?...好吧,您已经了解字典如何让我们使用一种类型作为键key,而另一种类型作为值。环境有效地使我们可以数据类型本身用作键,并将类型的实例用作值。

    9.6K20

    Excel公式技巧25: 使SUMIFSCOUNTIFS函数内的间接列引用变化

    使用Excel朋友都知道,包含相对列引用的公式复制其他列时,这些引用也会相应地更新。...因此,我们有一个相对简单的方法,可以连续的列中获得条件和。 但是,如果我们希望增加的单元格区域是间接引用的,那该怎么办?...B:B"),"Y") 其中,A1包含要引用的工作表名称(例如“Sheet1”)。 当我们向右拖动此公式时,间接引用的单元格区域不会改变。...当然,这是完全可以预料的,因为那些“单元格区域”根本不是真正的单元格区域,而只是伪装成单元格区域的文本字符串,只有通过将它们传递给INDIRECT函数才能将其解释为实际的单元格区域。...A:A") 转换为: Sheet2!A:A 而偏移的列数等于: COLUMNS($A:B) 即2,于是传递OFFSET函数后得到: Sheet2!

    2.7K20

    SwiftUI 状态管理系统指南

    前言 SwiftUI与苹果之前的UI框架的区别不仅仅在于如何定义视图和其他UI组件,还在于如何在整个使用它的应用程序中管理视图层级的状态。...本周,让我们仔细看看这些属性包装器中的每一个,它们之间的关系,以及它们如何构成SwiftUI整体状态管理系统的不同部分。...值得庆幸的是,SwiftUI还提供了一些机制,使我们能够外部模型对象连接到我们的各种视图。...观察和修改环境变量 最后,让我们来看看SwiftUI的环境系统如何被用来在两个互不直接连接的视图之间传递各种状态。...小结 SwiftUI管理状态的方式绝对是该框架最有趣的方面之一,它可能需要我们稍微重新思考数据在应用中的传递方式——至少在涉及将被我们的UI直接消费和修改的数据时是这样。

    5.1K20

    Ask Apple 2022 与 SwiftUI 有关的问答(上)

    是否有任何建议用来检测列表中的行选择,类似于 “NavigationLink”,但不导航另一个视图(例如,显示 Sheet列表中选择一个选项 )?...在单元测试中,很难对 SwiftUI 视图中的依赖( 符合 DynamicProperty 协议 )进行测试。这也是 Redux-like 框架的优势之一( 状态视图中抽离出来,方便测试 )。...在我的例子中,不拖动时 0 75,拖动时 0 100。有什么办法可以阻止这种情况吗?A:你可以用 .chartYScale(domain: 0 ... 75) 锁定 Y 轴的刻度域。...阅读 SwiftUI 的动画机制[8] 一文,了解更多有关动画的内容。自适应高度 SheetQ:如何在 iOS16 中呈现与动态内容高度相匹配的 Sheet?...事实上,这些视图( 惰性容器中的视图 )一旦被创建,其存续期持续惰性容器被销毁为止。请阅读 SwiftUI 视图的生命周期研究[12] 了解更多内容。

    12.2K20

    SwiftUI 与 Core Data —— 安全地响应数据

    本文介绍可能在视图中产生严重错误的原因,如何避免,以及在保证视图对数据变化实时响应的前提下如何为使用者提供更好、更准确的信息。由于本文会涉及大量前文中介绍的技巧和方法,因此最好一并阅读。...SwiftUI 与 Core Data —— 问题[1]SwiftUI 与 Core Data —— 数据定义[2]SwiftUI 与 Core Data —— 数据获取[3]可以在 此处[4] 获取演示项目...另一个角度来看,即使在托管上下文中使用 delete 方法删除该实例在数据库中对应的数据,但如果该托管对象实例仍被代码或视图所引用,Swift 并不会销毁该实例,此时,托管对象上下文会将该实例的 managedObjectContext...下文介绍在下篇文章中,我们探讨有关模块化开发的问题。如何具体的托管对象类型以及 Core Data 操作视图、Features 中解耦出来。希望本文能够对你有所帮助。...参考资料[1] SwiftUI 与 Core Data —— 问题: https://www.fatbobman.com/posts/modern-Core-Data-Problem/[2] SwiftUI

    3.3K20

    解析 SwiftUI 中两处由状态更新滞后引发的严重 Bug

    本文解析 SwiftUI 中两个由于未能贯彻响应式编程原则而导致的严重错误,并提供相应的解决方案。...Sheet执行下面的代码,你可以清楚地看到,在通过手势取消 Sheet 时,与其关联的状态是在 Sheet 完成取消动画后才发生了改变。...通过手势取消 Sheet 后,快速右滑导航容器会导致应用锁死这是一个在 SwiftUI 所有版本中存在的错误,你可以在众多的论坛或聊天室里看到不少的开发者都在寻找解决方法。...") }}注意观察,在尝试使用手势返回上层视图后,左上角的 Back 按钮消失,但视图并没有返回根视图图片如果我告诉你,上述情况正是由前文提到的状态更新滞后所导致,那么你该如何避免这个问题呢?...幸运的是,我 @KyleSwifter 的 解密 SwiftUI 背后的 AttributeGraph 一文中找到了线索。

    679110

    SwiftUI geometryGroup() 指南:原理到实践

    本文介绍 geometryGroup() 的概念、用法,以及在低版本 SwiftUI 中,在不使用 geometryGroup() 的情况下如何处理异常。...默认情况下,SwiftUI 视图会将位置和大小的变化沿视图层级向下传递,以至于只有绘制内容的视图(称为叶子视图)当前动画应用到它们的框架矩形上。...本节涉及 transaction 以及 SwiftUI 动画的一些内部运行机制。...以上面的示例来说,在添加了 geometryGroup() 后,父视图( frame )并不是一次性的将自身几何属性的改变状态传递给了子视图,而是这些变化动画化了后,持续传递给子视图的。...size.height) https://cdn.fatbobman.com/geometryGroup-demo4_2023-11-27_09.52.07.2023-11-27%2009_53_12.gif 新创建的单元格根据父视图持续传递进来的几何信息

    27510

    Python 自动化指南(繁琐工作自动化)第二版:十四、使用谷歌表格

    如果您将它们输入您的交互式 Shell 中,它们无法工作。前往sheets.google.com在你的账户下创建电子表格,然后地址栏获取 ID。...要将一个Sheet对象复制另一个Spreadsheet对象,调用copyTo()方法。目标Spreadsheet对象作为参数传递给它。...如何 Google Sheet 电子表格创建 Excel 文件? 如何 Excel 文件创建 Google Sheet 电子表格? ss变量包含一个Spreadsheet对象。...什么代码将从标题为Student的工作表中的单元格 B2 中读取数据? 如何找到 999 列的列字母? 如何找出一个工作表有多少行和列? 如何删除电子表格?...请记住,Google 工作表中的行号 1 开始,而不是 0 开始。单元格的值将是字符串,所以您需要将它们转换成整数,以便您的程序可以使用它们。

    8.5K50
    领券