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

正在尝试更新表单提交SwiftUI上的上一个视图

在SwiftUI中更新表单提交的上一个视图,可以通过以下步骤实现:

  1. 使用@State属性包装一个布尔类型变量,用于表示是否提交表单。
  2. 在上一个视图中,使用NavigationLink或其他导航组件跳转到包含表单的视图。
  3. 在包含表单的视图中,使用@Binding属性包装需要更新的数据变量。
  4. 在表单的提交按钮的动作处理方法中,将提交状态设置为true,并更新数据。
  5. 返回上一个视图,并在其onAppear方法中检查提交状态,如果为true则执行相应的处理操作。
  6. 在处理完相关操作后,将提交状态重新设置为false,以便下次提交。

下面是一个示例代码,演示如何在SwiftUI中更新表单提交的上一个视图:

代码语言:txt
复制
import SwiftUI

struct ContentView: View {
    @State private var isFormSubmitted = false
    @State private var formData = ""

    var body: some View {
        NavigationView {
            VStack {
                if isFormSubmitted {
                    Text("表单已提交,数据为:\(formData)")
                } else {
                    NavigationLink(destination: FormView(formData: $formData, isFormSubmitted: $isFormSubmitted)) {
                        Text("填写表单")
                    }
                }
            }
            .navigationBarTitle("主视图")
        }
    }
}

struct FormView: View {
    @Binding var formData: String
    @Binding var isFormSubmitted: Bool

    var body: some View {
        Form {
            TextField("请输入数据", text: $formData)
            Button(action: {
                // 执行表单提交操作
                isFormSubmitted = true
            }) {
                Text("提交")
            }
        }
        .navigationBarTitle("表单视图")
    }
}

在这个例子中,我们通过@State属性包装了isFormSubmittedformData,分别用于表示表单是否已提交和存储表单数据。在主视图中,如果表单已提交,则显示提交后的视图;如果表单未提交,则显示填写表单的按钮。在表单视图中,我们使用@Binding属性包装了formDataisFormSubmitted,并通过TextFieldButton控件分别获取用户输入和提交表单的动作。在点击提交按钮后,我们将isFormSubmitted设置为true,并更新表单数据。在主视图的onAppear方法中,我们检查isFormSubmitted的状态,如果为true则显示提交后的视图,并进行相应的处理。处理完后,可以将isFormSubmitted重新设置为false,以便下次提交。

这是一个简单的示例,演示了如何在SwiftUI中更新表单提交的上一个视图。根据具体需求,你可以根据需要调整代码和界面布局。

相关搜索:提交表单上的PHP更新变量正在尝试更新列表视图中按钮的可见性正在尝试从表单提交和触发器列表Rerender更新React上下文我正在尝试更新BlockBreakEvent上的项目,但它无法正确更新正在尝试修复重复查询上的此插入更新尝试在Ionic v4中的模型上提交表单我正在尝试提交几个表单中的一个,但提交的值只属于第一个表单当我尝试提交登录表单时,页面正在重新加载,没有获得表单组-Ionic、Angular的值如何更新工作表中新提交的表单响应上的字段?我正在尝试更新postgreSQL 9.6和pg admin 4上的表,但它没有更新/插入当我尝试访问网页上的表单提交时,我的JavaScript querySelector返回空值正在尝试编辑WordPress联系人表单上的一些静态文本如何在每个提交的表单上更新一个值(添加到该值上)?使用jQuery在html表单的提交事件上更新d3.js多线图单击添加和删除按钮后,我正在尝试更新回收器视图中的文本视图。notifyDataSetChanged();方法不起作用通过jQuery更新的复选框未在表单提交中选中,但显示在屏幕上当我尝试提交没有数据的表单时,它显示了带有控制器创建操作视图的验证错误尝试使用警告消息之后的id将焦点设置在表单元素上,但提交的是jsp页面如何使用脚本根据从上一个问题中选择的日期更新Google表单上的多项选择题正在尝试添加返回功能。(上一步)使用Javascript将按钮添加到我的多步表单
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

众所周知,SwiftUI 是一个响应式框架,这意味着,当数据源发生变化时,框架会自动更新视图。同样,当我们想调整视图显示时,应直接对状态进行修改。...原文发表在我博客 肘子Swift记事本视图变化在前、状态变化在后在 SwiftUI 中,某些可编程控件在执行一定操作时,会先更新视图,待视图变化完成后再修改与其对应状态。...而通过调用环境值或直接修改绑定状态,SwiftUI 则遵循了响应式编程原则,进行了先调整状态,后更新视图操作。...当视图正在滚动时返回一层视图会导致应用崩溃这是一个由 xiaogd 在我 Discord 论坛中提出 问题。...状态更新滞后不仅存在于本文介绍两个案例中,当开发者遇到类似情况时,可以尝试采用状态更新优先开发策略进行修改。总结今年 SwiftUI 已经进入了第五个年头。

707110

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

众所周知,SwiftUI 是一个响应式框架,这意味着,当数据源发生变化时,框架会自动更新视图。同样,当我们想调整视图显示时,应直接对状态进行修改。...视图变化在前、状态变化在后 在 SwiftUI 中,某些可编程控件在执行一定操作时,会先更新视图,待视图变化完成后再修改与其对应状态。这些控件基本都是对 UIkit(AppKit)二次包装。...而通过调用环境值或直接修改绑定状态,SwiftUI 则遵循了响应式编程原则,进行了先调整状态,后更新视图操作。...当视图正在滚动时返回一层视图会导致应用崩溃 这是一个由 xiaogd 在我 Discord 论坛中提出 问题[3]。...状态更新滞后不仅存在于本文介绍两个案例中,当开发者遇到类似情况时,可以尝试采用状态更新优先开发策略进行修改。 总结 今年 SwiftUI 已经进入了第五个年头。

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

    因此,如果你正在创建一个视图来显示可滚动内容,并可能进行选择操作,那么在 iOS 和 macOS 使用 List 将有最好体验。...视图性能优化Q:面对复杂用户界面时,控制视图更新范围最佳做法是什么( 以避免不需要转发以及重复计算 )。...在更复杂 UI 中,由于视图更新速度过快,性能( 至少在 macOS )迅速下降。A:有不同策略。ObservableObject 是使视图视图层次结构失效( 引发重新计算 )单元。...A:你最好选择是使用 ScrollView 和 ScrollViewReader,并在 onAppear 或新内容进来时滚动到最底部视图。我不建议尝试旋转滚动视图。...然而,两个内容相同视图之间交换并不能使视图顺利地产生动画,因为两者文本也被动画化了。我正在使用仅禁用 TextField 替代方法,但有没有办法引导动画以使用文档中方法?

    14.8K30

    AnyView 对 SwiftUI 性能影响

    前言AnyView 是一种类型擦除视图,对于 SwiftUI 容器中包含异构视图非常方便。在这些情况下,你不需要指定视图层次结构中所有视图具体类型。...如果是 AnyView(基本是一个包装类型),SwiftUI 将很难确定视图身份和结构,并且它将重新绘制整个视图,这并不是真正高效。...正在测试列表具有不同类型数据(例如图像、视频、GIF、文本等)。在测试不同实现时执行相同操作(例如,在内容滚动三次)。数据以每页 25 个项目的形式获取。...例如,如果你有 100 毫秒的卡顿,这意味着此帧显示晚于预期 100 毫秒,从而使用户可以看到挂起。卡顿可以出现在提交阶段或渲染阶段。...当需要更新视图时,仅对其进行更改(例如,向视图添加另一个反应)。有 AnyView当我们在这种情况下使用 AnyView 时,事情就变得有趣了 - 在短时间内对屏幕视图进行频繁更新

    14200

    GeometryReader :好东西还是坏东西?

    特别是在最近几次 SwiftUI 更新中新增了一些可以替代 GeometryReader API 后,这种观点进一步加强。...GeometryReader 更新几何信息时资源消耗较大,可能会引发不必要重复计算和视图重建。...这些批评并非全无道理,其中相当一部分已经通过新 API 在 SwiftUI 版本更新后得到了改善或解决。...将几何信息传递到上层视图,可能会引起不必要视图更新。而向下传递信息,可以确保更新只在 GeometryReader 闭包中进行。 GeometryReader 是布局容器吗,它布局逻辑是什么?...用 SwiftUI 方式进行布局 由于对 GeometryReader 负面看法,一些开发者会尝试寻找其他方式以避免使用它。

    63070

    Swift 周报 第四十二期

    周报精选 新闻和社区:苹果 CEO 库克透露接班计划,希望继任者来自公司内部 提案:Typed throws 提案正在审查 Swift 论坛:讨论 MainActor 上下文切换和线程数 推荐博文:...讨论MainActor 上下文切换和线程数[6] 提问 我正在观看 Swift 并发:幕后[7]我了解到,作为使用 Swift 并发开发人员,我们不应该违反不阻塞线程运行时契约。...使用 callAsFunction 嵌入新有效负载。 简化枚举案例检查和有效负载提取。 利用 SwiftUI 绑定大小写键路径,启用基于枚举大小写导航和表单控件使用。...SwiftUI 现有视图修饰符所期望形状: .sheet(item: self....接着,我们介绍了 SwiftUI 中引入 animation 视图修饰符新变体,允许我们使用 ViewBuilder 闭包来限定动画范围。最后,我们还提到了在视图层次结构中维护作用域事务方法。

    22110

    SwiftUI 布局协议 - Part 1

    情况二:如果子视图完全接收提供视图 图形就是视图一个例子,不管你提供了什么他都能接收。在上一个例子中,绿色矩形占据了提供所有空间,但没有一个多余像素。...每个视图都有一个,作为父视图直接后代。尽管有这个名称,但它类型不是视图,而是一个代理。我们可以查询这些代理去了解我们正在布局各个视图布局信息。...在我们第一次尝试中,我们将会实现 sizeThatFits ,但是同时我们将会使其他需要方法(placeSunviews)为空。...尽管有更好方法(我们将在一分钟内解决它们),但你可以使用视图布局优先级值赋予它们任何意义。例如,在上一个例子中,我们将会根据视图优先级值从左往右放置视图。...这个框架测试我们容器灵活性,以确定整体视图层级结构最终布局。为了提高布局容器性能, SwiftUI 让我们实现了一个缓存, 只有当容器内至少一个视图改变时才更新缓存。

    3.3K10

    WWDC 23 ,SwiftUI 5 和 SwiftData 初印象

    WWDC 2023 正在如火如荼地进行。苹果不仅带来了全新形态硬件产品,还推出了几个相当震撼新框架。本文将聊聊我对本届 WWDC 中 SwiftUI 5.0 和 SwiftData 初步印象。...欢迎大家在 Discord 频道[2] 中进行更多地交流 SwiftUI 如果说从 SwiftUI 1.0 到 4.0 每年升级是一种小修小补行为,那么今年苹果在 SwiftUI 5.0 做出努力至少算得上是中期改款了...这从根本上解决了当前影响 SwiftUI 应用( 过渡计算 )效率问题。让开发者可以更加自由来设计数据结构以及随心所欲注入数据源。 不过很遗憾,这项新特性只能在 SwiftUI 5 实现。...革命性动画和视觉效果升级 SwiftUI 原本欠缺一些高级动画和视觉功能在本次升级中一并被补上了,而且苹果大幅更新了动画、转场、Shape、效果等方面的内部实现。...性质与通过宏创建 Observed 状态类似,可直接驱动视图更新(传递时无需使用属性包装器) Attribute 派生选项被废弃了 可以在 Xcode 中使用 Model Editor 将 Model

    38410

    SwiftUI 布局协议 - Part2

    此外,在与其他视图布局工作时候,我们就相当于 SwiftUI 角色。子布局任何缓存创建和更新都属于我们责任,幸运是,这都很容易处理。我们只需要添加子布局缓存到我们自己缓存里。...那我们需要是一种让布局告诉视图如何绘制线条方法。初步想法可以(在这个问题上苹果工程师是这么建议[3]) 使用布局值。这正是我们在上一个例子中做事情,双向自定义值。...我发现更新路径会产生一个循环,即使该路径被绘制为不影响布局背景视图也是如此,所以为了避免这种循环,我们要确保路径发生改变,然后才更新绑定,这样就可以成功打破循环。...感谢新布局协议,我创建了一个修饰器,它在尝试理解为什么视图不像您认为那样工作时候非常有用,修饰器在这儿: func showSizes(_ proposals: [MeasureLayout.SizeRequest...我经常认为这些视图是理所当然,并将它们视为简单而不复杂容器,好吧,尝试编写自己版本,在各种情况下复制一个 HStack ,多种类型视图和布局优先级竞争同一个空间。。。这是一个不错挑战!

    2.7K30

    我庆幸果断放弃了SwiftUI:它还不够成熟

    本文作者 chsxf,是一家独立游戏工作室首席开发,也是 15 年苹果用户,他想尝试SwiftUI 放到自己项目中,但是最终失败了。...他发表了一篇博客,总结了尝试并放弃 SwiftUI 过程,这篇文章在 Hacker News 引发了开发者们大量讨论: “恕我直言,SwiftUI 是一个很好机会,但苹果公司对它投资不足。...但每当 SwiftUI 更新检查器视图时(这种更新可能出现在移动过程中,甚至是在输入文本字段时候),渲染速率都会下降到每秒 10 到 15 帧,而且相当不稳定。这显然让人无法容忍。...这些按钮只跟管理 SpriteKit 视图缩放 @State 相关联。尽管几乎不涉及任何其他数据,在界面更新前单击这些按钮,也会产生将近一秒钟巨大延迟。...但我至少可以更好地控制应用程序行为,而且根据需求随意调整各种元素。 总之,经历了这么一番波折,我还是很庆幸自己果断放弃了 SwiftUI。这可能是我在这个项目做过最明智选择。

    5K20

    肘子 Swift 周报 #045| 我们需要更多《悟空》

    越来越多应用采用了不提供买断选项订阅制收费方式。相较于数年前付费更新机制,订阅制意味着如果不续费就失去了对产品使用权,这种趋势蔓延无疑增加了消费者成本负担和用户数据不确定性。...近期推荐 SwiftUI全局表单模式 ( Global Sheets Pattern in SwiftUI )[6] Mohammad Azam[7] SwiftUI 提供了一种高度灵活方式来声明和展示模态表单...这种方法有效地解决了在多个视图间管理表单时常见冗余和混乱问题,使得代码更加整洁并易于维护。...这使得开发者可以在 SwiftUI 视图中直接使用这些生成符号,而无需使用字符串引用,从而减少错误并利用自动完成和编译器验证。...此功能更新允许开发者更精细地控制资产符号生成,提高了项目的灵活性和代码可维护性。

    9610

    WWDC 23 ,SwiftUI 5 和 SwiftData 初印象

    WWDC 2023 正在如火如荼地进行。苹果不仅带来了全新形态硬件产品,还推出了几个相当震撼新框架。本文将聊聊我对本届 WWDC 中 SwiftUI 5.0 和 SwiftData 初步印象。...SwiftUI 如果说从 SwiftUI 1.0 到 4.0 每年升级是一种小修小补行为,那么今年苹果在 SwiftUI 5.0 做出努力至少算得上是中期改款了。...这从根本上解决了当前影响 SwiftUI 应用( 过渡计算 )效率问题。让开发者可以更加自由来设计数据结构以及随心所欲注入数据源。 不过很遗憾,这项新特性只能在 SwiftUI 5 实现。...革命性动画和视觉效果升级 SwiftUI 原本欠缺一些高级动画和视觉功能在本次升级中一并被补上了,而且苹果大幅更新了动画、转场、Shape、效果等方面的内部实现。...性质与通过宏创建 Observed 状态类似,可直接驱动视图更新(传递时无需使用属性包装器) Attribute 派生选项被废弃了 可以在 Xcode 中使用 Model Editor 将 Model

    1.1K20

    SwiftUI 之 HStack 和 VStack 切换

    前言 SwiftUI 各种堆栈是许多框架中最基本布局工具,能够让我们定义组视图,这些组视图可以按照水平、垂直或覆盖视图对齐。...想了解更多信息,可以查看我文章 - SwiftUI 布局系统第三章 目前,我们按钮是垂直排列,并且填满了水平线上可用空间(你可以用以上示例代码预览按钮样子),虽然这在竖向 iPhone 看起来很好...(例如在大尺寸 iPhone 使用横屏,或者全屏 iPad 任一方向),而其它所有尺寸配置使用垂直布局。...关键区别在于(除了后者需要 iOS 16 )切换布局可以保留正在渲染底层视图标识,而在 HStack 和 VStack 之间切换就不会这样。...这样做会令动画更流畅,例如在切换设备方向时,我们也有可能在执行此类更改时获得小幅性能提升(因为 SwiftUI 总是在其视图层次结构为静态时尽可能表现最佳) 选择合适视图 但我们还没有结束,因为

    2.8K10

    【visionOS】从零开始创建第一个visionOS程序

    在任何SwiftUI应用中,你都可以使用场景将内容放到屏幕。场景包含要在屏幕显示视图和控件。场景还定义了这些视图和控件出现在屏幕外观。...系统会自动将以下类型输入映射到你SwiftUI事件处理代码: 这张照片显示是窗户角落里控件,以及一个人坐在椅子,双手放在膝盖上自上而下叠加视图。 间接输入。...显示动态3D场景使用RealityKitin页面链接 RealityKit是苹果公司用于创建3D模型和场景技术,你可以在屏幕动态更新。...这个SwiftUI视图作为你RealityKit内容容器,并允许你使用熟悉SwiftUI技术更新内容。 下面的例子展示了一个使用RealityView来显示3D球体视图。...当指定手势发生在实体时,SwiftUI执行提供闭包。 下面的示例将一个点击手势识别器添加到上一个示例中球体视图中。

    94340

    Ask Apple 2022 与 SwiftUI 有关问答(

    访问我博客 www.fatbobman.com[1] 可以获得更好阅读体验以及最新更新内容。...场景内容视图定义了场景创建窗口中视图内容,但场景本身定义了应用程序整体结构。SwiftUI 4.0 中,WindowGroup 获得了相当大更新,真正具备了开发 macOS 应用能力。...事实,这些视图( 惰性容器中视图 )一旦被创建,其存续期将持续到惰性容器被销毁为止。请阅读 SwiftUI 视图生命周期研究[12] 了解更多内容。...开发者目前仍在尝试创建一个可优雅地同时为两种模式提供路径模型。阅读 SwiftUI 4.0 全新导航系统[13] ,了解它们之间不同。...A:如果你在 iOS 使用 UITextField 遇到性能问题,你可以尝试避免每个视图都是 UITextField ,默认渲染为 Text ,当文本被点击时动态切换为 UITextField 。

    12.3K20

    苹果全新UI框架来了!可视化编程,自动化减少20%代码量

    SwiftUI还提供对动态类型、暗黑模式、本地化和可访问性自动支持。 SwiftUI更新了什么? 此次更新主要有5点: 声明式:更加易读代码。...而SwiftUI通过4种方式,解决了上述问题: 用一个新声明式UI结构,定义了布局外观和工作方式 更新UI预览会自动生成新Swift代码,反之,更改Swift代码也会更新UI预览 Swift中任何绑定例如有效...此前,无论什么尺寸屏幕iPad,总是很难将Interface Builder大小放到iOS。而拥有更简单,更快速,更安全SwiftUI为开发人员实现真正平台独立性迈出了一大步。...使用SwiftUI之前要注意事情 首先,SwiftUI目前只支持10.15 beta以及更新macOS系统,当然10.15 beta已经是目前最新了。 其次一些可能出现小问题也是需要注意。...比如,它只支持Swift,你不能在Obj-C里使用SwiftUISwiftUI目前还不是很成熟,正在从事iOS开发程序员可能更应该继续使用Obj-C,直到SwiftUI足够成熟。

    5.4K20

    避免 SwiftUI 视图重复计算

    如果视图响应了不该响应状态,或者视图状态中包含了不该包含成员,都可能造成 SwiftUI 对该视图进行不必要更新( 重复计算 ),当类似情况集中出现,将直接影响应用交互响应,并产生卡顿状况。...并且 SwiftUI 会在其变化时自动更新( 重新计算 )对应视图SwiftUI 上有一个困扰了不少人问题:为什么无法在视图构造函数中,更改 State 包装变量值?...、应用性能表现、测试难易度等方面取得平衡 不存在完美的解决方案,即使像 TCA 这类热门项目,面对切分粒度高、层次多 State 时,也会有明显性能瓶颈 视图构造参数 在尝试改善 SwiftUI...与符合 DynamicProperty 协议属性包装器主动驱动视图更新机制不同,SwiftUI更新视图时,会通过检查子视图实例是否发生变化( 绝大多数都由构造参数值变化导致 )来决定对子视图更新与否...会在主线程运行触发器闭包,如果闭包中操作比较昂贵,可以考虑将闭包发送到后台队列 总结 本文介绍了一些在 SwiftUI 中如何避免造成视图重复计算技巧,除了从中查找是否有能解决你当前问题方法外

    9.3K81

    肘子 Swift 周报 #005

    码表更新。...Kiecooboi 在提交首个应用时也遇到了这个问题。...The Browser Company[13] 正在致力于将 Swift 应用于 Windows 平台,在周报第二期中,我们还介绍了他们另一篇关于在 Windows 使用 Swift 文章:Interoperability...在这篇文章中,Javier 对阶段动画使用方法进行了详尽介绍,他还指出了在阶段动画中使用 Text 视图可能出现一个潜在问题,并提供了解决方案。...SwiftGG 一直尝试将社区里有前瞻性,有价值内容呈现到大家视野中,除了会邀请国内各个领域大牛,还会努力成为与国外优秀创作者建立联系纽带,以更宽广,更国际化视角来丰富创作者们视野。

    25650

    SwiftUI 与 Core Data —— 数据获取

    本文中我们将探讨在 SwiftUI 视图中批量获取 Core Data 数据方式,并尝试创建一个可以使用 mock 数据 FetchRequest。...我也做了不少尝试,但最终发现似乎 FetchRequest 仍是当前 SwiftUI最优解。...这将有两个作用:数据变化后将引发与其绑定视图进行更新由于底层数据并不保存在视图中,因此在视图存续期中 SwiftUI 可以随时创建新视图描述实例而无需担心数据丢失虽然苹果没有公开 _makeProperty...不可在 update 方法中同步地改变引发视图更新数据与 SwiftUI视图更新 Source of truth 逻辑一致,在一个视图更新周期中,不能对 Source of truth 再度更新...这是由于一旦 SwiftUI 惰性容器中出现了多个 ForEach ,惰性容器将丧失对子视图优化能力。任何数据变动,惰性容器都将对所有的子视图进行更新而不是仅更新可见部分视图

    4.6K30

    SwiftUI 状态管理系统指南

    视图内部状态,并在该状态被改变时自动使视图更新。...作为一个例子,让我们更新上面定义ProfileView——通过将管理User模型责任从视图本身转移到一个新、专门对象中。...现在,我们可以用许多不同方式来描述这样一个对象,但由于我们正在寻找创建一个类型来控制我们一个模型实例——让我们把它变成一个符合SwiftUIObservableObject协议模型控制器[2]...因此,虽然下面的内容在技术可能会被编译,但最终会导致运行时问题——因为当我们视图更新时被重新创建,UserModelController实例可能会被删除(因为我们视图现在是它主要所有者):...: SwiftUI视图不是对正在屏幕渲染实际UI组件引用,而是描述我们UI轻量级值——因此它们没有像UIView实例那样生命周期。

    5.1K20
    领券