SwiftUI:如何在工作表关闭后显示警报?

2023-12-30

我试图显示由模式表触发的警报。这是一个小型演示项目:

import SwiftUI

struct ContentView: View {
    @State private var showSheet = false
    @State private var showAlert = false

    var body: some View {
        Button("Press") {
            showSheet = true
        }
        .sheet(isPresented: $showSheet) {
            Button("Close with alert") {
                showSheet = false
                showAlert = true
            }
        }
        .alert(isPresented: $showAlert) {
            Alert(title: Text("Alert"))
        }
    }
}

单击“按下”按钮后,将出现一个模式表,其中包含“关闭并警告”按钮。如果按下此按钮,工作表将关闭并且不会发生任何事情。我希望显示警报。

隐藏工作表的动画似乎导致了问题,因为 SwiftUI 在设置 showSheet = false 后似乎并不认为工作表已关闭。出现以下警告支持该理论:

[演示] 尝试演示 上 TtGC7SwiftUI19UIHostingControllerGVS_15ModifiedContentVS_7AnyViewVS_12RootModifier_: 0x7fbbaa60b7d0>(来自 TtGC7SwiftUI19UIHostingControllerGVS_15ModifiedContentVS_7AnyViewVS_12RootModifier_: 0x7fbbaa60b7d0>) 已经呈现 TtGC7SwiftUI22SheetHostingControllerVS_7AnyView:0x7fbbaa413200>。


您可以使用onDismiss.

以下是一些基于的示例when您想发出警报吗:

  1. Always关闭并发出警报:
struct ContentView: View {
    @State private var showSheet = false
    @State private var showAlert = false

    var body: some View {
        Button("Press") {
            showSheet = true
        }
        .sheet(isPresented: $showSheet, onDismiss: {
            showAlert = true
        }) {
            Button("Close") {
                showSheet = false
            }
        }
        .alert(isPresented: $showAlert) {
            Alert(title: Text("Alert"))
        }
    }
}
  1. 关闭并发出警报仅单击按钮:
struct ContentView: View {
    @State private var showSheet = false
    @State private var showAlert = false
    @State private var closeSheetWithAlert = false

    var body: some View {
        Button("Press") {
            showSheet = true
            closeSheetWithAlert = false
        }
        .sheet(isPresented: $showSheet, onDismiss: {
            showAlert = closeSheetWithAlert
        }) {
            Button("Close") {
                closeSheetWithAlert = true
                showSheet = false
            }
        }
        .alert(isPresented: $showAlert) {
            Alert(title: Text("Alert"))
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SwiftUI:如何在工作表关闭后显示警报? 的相关文章

  • CoreData 和 SwiftUI:环境中的上下文未连接到持久存储协调器

    我正在尝试通过构建一个作业管理应用程序来自学核心数据 我的代码构建良好 应用程序运行正常 直到我尝试将新分配添加到列表中 我收到这个错误Thread 1 EXC BREAKPOINT code 1 subcode 0x1c25719e8 在
  • 在 SwiftUI TextEditor 中设置光标位置

    有没有办法以编程方式将光标移动到特定文本行或在 SwifUI 中选择它TextEditor 例如 如果有一个TextEditor里面写着10行 当用户按下按钮时 光标将导航到第三行 或者文本将被选择 目前使用默认的 SwiftUI 是不可能
  • SwiftUI 转义闭包捕获变异的“self”参数

    我有一个可以通过两种方式打开的视图 一个包含提供给它的数据 另一个包含对 Firestore 文档的文档引用 我创建了两个构造函数 在第一个构造函数中我提供数据 在另一个构造函数中我提供文档参考 然后我使用此引用进行网络调用 但出现错误 E
  • SwiftUI ScrollView 只向一个方向滚动

    尝试使用视图作为列表行样式来创建自定义列表 以摆脱默认情况下列表中难看的分隔线 但是 一旦我将 ZStack 行放入滚动视图中 滚动视图就会在两个方向上滚动 而不仅仅是垂直滚动 这是内容视图 NavigationView ScrollVie
  • 在 ARKit 和 RealityKit 中使用 Raycast 的真正好处是什么?

    RealityKit 和 ARKit 中的光线投射有何用途 我什么时候需要使用makeRaycast查询 https developer apple com documentation realitykit arview 3255315 m
  • 如何将图像转换为 UIImage?

    如何转换 SwiftUIImage to a UIImage let image Image systemName circle fill let UIImage image as UIImage 没有直接的方法将 Image 转换为 UI
  • SwiftUI 更新主菜单 [已解决] kludgey

    真正的问题 你如何更新mainMenu在 SwiftUI 中 它真的可以工作吗 我在 SwiftUI 中构建了一个基于 MacOS 文档的应用程序 其中包括所有内置的文件菜单命令 即关闭 保存 复制 重命名 等 在保存文档之前 我会验证结构
  • HStack 中的 SwiftUI EditButton 未激活编辑模式

    作为更大表单的一部分 我希望有一个带有列表的部分 其条目可以重新排序 在整个视图中 应该只能编辑该特定列表 而不能编辑其他内容 因此我希望将编辑按钮放在列表附近 如果我只是将 EditButton 设置为节标题 则可以对列表项重新排序 但无
  • 如何在 SwiftUI 中使用带条件检查的按钮进行导航

    Since 导航按钮不再可用 我如何检查条件导航链接为了导航到另一个视图 NavigationLink destination Dashboard userName self userId password self password is
  • SwiftUI - 在 NavigationView 中嵌套 TabView 时不显示导航栏标题

    由于应用程序特定的原因 我必须将 TabView 嵌套在 NavigationView 中 但是选项卡项目的导航栏标题不会显示 只是一个空的导航栏 有什么解决办法吗 struct ContentView View var body some
  • 针对 iOS 10.3 进行编译,但模块“SwiftUICharts”的最低部署目标为 iOS 13.0

    知道如何仅在 iOS 版本超过 iOS 13 时导入 SwiftUICharts 框架吗 我通过 文件 gt Swift 包 gt 添加包依赖项 添加了此框架 我的应用程序目标必须是 iOS 10 我将此框架导入到 swiftui 控制器中
  • 如何检测 swiftui 中是否存在键盘

    我想知道按下按钮时键盘是否存在 我该怎么做 我已经尝试过 但我没有任何运气 谢谢 使用该协议 KeyboardReadable 你可以符合任何View并从中获取键盘更新 KeyboardReadable协议 import Combine i
  • SwiftUI:动态“列表”中的“切换”在重用时会破坏其布局?

    我试图展现一种动态List行包含Toggle元素 这Toggle最初布局正确 但是当它们滚动进和滚出视图时 即单元格重用时 它们的布局会中断 最小示例代码 import SwiftUI struct SwitchList View var
  • 调用 SwiftUI 中位置 #11、#12 处的额外参数 [重复]

    这个问题在这里已经有答案了 我在 SwiftUI 中的切换开关上不断收到 调用中位置 11 12 处有额外参数 错误 我见过其他人有 调用中的额外参数 错误 但答案似乎没有帮助 另外 我的错误是 位置 11 12 我还没有看到其他人发生这种
  • SwiftUI:状态栏颜色

    有没有办法将 SwiftUI 视图的状态栏更改为白色 我可能错过了一些简单的东西 但我似乎找不到在 SwiftUI 中将状态栏更改为白色的方法 到目前为止我只看到 statusBar hidden Bool 状态栏文本 色调 前景色可以通过
  • 如何使用 SwiftUI 创建自定义滑块?

    我可以使用 SwiftUI 创建滑块 但无法更改滑块的样式 如下图所示 问题 我无法在 SwiftUI 中找到任何选项来更改滑块样式 注意 我想仅使用 SwiftUI 创建它 我已经在 Swift 中使用 创建了这个滑块 https git
  • SwiftUI - 使用“ObservableObject”和@EnvironmentObject 有条件地显示视图

    我想在我的应用程序中有条件地显示不同的视图 如果某个布尔值为 true 则将显示一个视图 如果为 false 将显示不同的视图 该布尔值位于 ObservableObject 类中 并根据将要显示的视图之一进行更改 PracticeStat
  • SwiftUI ScrollView 无法禁用垂直弹跳?

    初始化程序中有一个带有 ScrollView alwaysBounceVertical false 的属性 但我似乎找不到它了 有谁知道如何禁用 SwiftUI ScrollView 上的垂直弹跳 过度滚动 是的 它已从 ScrollVie
  • Swiftui 应用程序在 iOS 14 / 15 上使用不同的 SearchBar (ViewModifier) 时崩溃

    我在 iOS 14 上使用 SwiftlySearch 在 iOS 15 上使用 searchable struct CompatibleSearchBarModifier ViewModifier Binding var text Str
  • 如何使用 SwiftUI 拖动工作滑块

    我想拖动一个滑块 当然也让它滑动 我可以做其中之一 但我不能两者都做 如何拖动并拥有可用的滑块 我也尝试找到一种方法来删除手势 但我找不到方法来做到这一点 还尝试了 Apple Composition SwiftUI Gestures 文档

随机推荐

  • Ruby On Rails - 地理编码器 - 接近条件

    我在我的应用程序中使用 GeoCoder 现在我需要在数据库中搜索靠近某个位置或具有特定属性集的对象 我想在一个数据库查询中执行此操作 因为数据库确实很大 我想要有类似的东西 Spot near lat long distance wher
  • 硬币组合的完整搜索算法

    该问题与硬币找零问题类似 但略有不同 问题描述为 你有一组硬币 并且你知道这些硬币的价值以及其中每种硬币的数量 您想知道可以从这些硬币的非空分组中赚取多少不同的金额 例如coins 1 2 3 和数量 1 2 2 有 11 种可能的和 基本
  • Laravel:外观实际上在调用方法时创建新对象吗?

    我有一个演示类 通常通过 this gt app gt bind demo function return new Demo 设立一个门面 protected static function getFacadeAccessor return
  • 在 R 中保存并重新加载“列表”对象

    我正在尝试将我手动创建的列表对象保存到以下内容中list我可以很快参考的格式 保存的对象应该能够作为list not df或任何东西 下面是我的列表对象的一部分 citations lt list as integer c 1 2 3 4
  • 任务管理器显示内存泄漏,但堆快照没有

    我每 5 秒运行一次大量 JavaScript 任务管理器显示内存使用量不断增加 然而堆快照却没有 如果我停止脚本 大约半分钟两分钟后内存将被清除 UPDATE 如果我长时间离开脚本 内存就会增加 直到浏览器崩溃 我还尝试运行 chrome
  • PostgreSQL 对文本数组值的查询

    我有一个表 其中一列有一个数组 但以文本格式存储 mytable id ids 1 3 4 2 3 5 3 3 etc 我想找到数组元素中值为 5 的所有记录ids column 我试图通过使用 字符串到数组 功能并删除 符号与transl
  • 在 NGRX 上的 ActionsSubject 订阅上使用操作的有效负载

    我又旧又坏Property payload does not exist on type Action执行此操作订阅 由于是创建操作 我需要有效负载来签出userId最近创建的用户并导航到 users userId 顺便说一句 我正在关注这
  • 删除测试期间生成的 id

    对于负载测试vu阶段我生成了很多具有唯一 ID 的对象 并将它们放入数据库中 我想在期间删除它们teardown阶段以免污染数据库 当保持这样的状态时 let ids export function setup ids push put i
  • 实现大型文本文件阅读器的最佳策略

    我们有一个应用程序将其处理步骤记录到文本文件中 这些文件在实施和测试期间用于分析问题 每个文件的大小最大为 10MB 最多包含 100 000 行文本 目前 对这些日志的分析是通过打开文本查看器 Notepad 等 并根据问题查找特定字符串
  • ctypes 与 _ctypes - 为什么后者存在?

    我最近了解到Python不仅有一个名为ctypes 其中有一个文档页面 https docs python org library ctypes html 还有一个名为 ctypes which doesn t https docs pyt
  • Android 无需 USB 调试

    我使用 Eclipse 我想使用我的设备调试我的应用程序 但又不损坏其电池 因为我应该始终在电池尚未放电时为其充电 是否可以在不通过 USB 连接的情况下将设备连接到 adb 我尝试使用 logcat 应用程序 但有点不舒服 我搜索了一个不
  • Rails STI,子类除非使用否则不会显示?

    我正在使用 Rails STI 对复杂域进行建模 在视图中 我列出了所有子类 gt li gt li 目的是最终使子类的每个标签都成为指向该子类实例的单独 索引 页面的链接 这使我不必自己拥有所有可能的子类的列表 如果我添加更多子类 则稍后
  • 在 Jest 中调试内存泄漏需要遵循哪些步骤?

    我在 Jest 中的测试似乎正在泄漏 调试此类问题的建议步骤是什么 我对这类问题很陌生 正如你所看到的 我尝试过传入Jest 中记录的选项 https jestjs io docs en cli html forceExit detectO
  • 是否可以在 Haskell 中创建 PHP 扩展?

    是否可以使用 Haskell 创建 PHP 扩展 通常 PHP 扩展是使用 C 编写的 使用 Haskell FFI 为存根 C 扩展提供功能是否可行 甚至是一个好主意 这种方法有哪些注意事项 Zend 是否会在后台施展一些魔法来破坏这样的
  • PhoneGap 电子邮件撰写器插件

    我构建了一个简单的基于 jQuery Mobile 的应用程序 并尝试使用 Phonegap 对其进行编译 我希望用户能够通过电子邮件从应用程序发送一些内容 但我无法弄清楚这一点 My code
  • 使用 Python 在 Windows 上获取目录所有权会导致“访问被拒绝”错误

    我正在尝试使用以下代码获取目录的所有权 sd win32security SECURITY DESCRIPTOR sd SetSecurityDescriptorOwner curUser False win32security SetFi
  • 初始化 UIGestureRecognizer 作为 Swift 中属性定义的一部分?

    我想初始化一个UIPanGestureRecognizer作为一个UIViewController的属性定义 这样我就不必将其声明为可选 如果初始化仅发生在viewDidLoad 以下两次尝试都在编译时失败 我使用的是最新版本的 Xcode
  • 使用asp.net登录控制的部分站点SSL

    我正在尝试将本地登录系统转换为 net 中包含的标准asp net 登录控件 我希望未登录用户在网站上的所有通信都以明文形式进行 但一旦用户登录 就将所有内容锁定在 SSL 中 包括用户名和密码的传输 我之前通过加载第二个页面 logina
  • 具有嵌套列的 Apache Spark 窗口函数

    我不确定这是一个错误 或者只是语法不正确 我四处搜寻 没有看到其他地方提到这一点 所以我在提交错误报告之前在这里询问 我正在尝试使用在嵌套列上分区的窗口函数 我在下面创建了一个小示例来演示该问题 import sqlContext impl
  • SwiftUI:如何在工作表关闭后显示警报?

    我试图显示由模式表触发的警报 这是一个小型演示项目 import SwiftUI struct ContentView View State private var showSheet false State private var sho