首页
学习
活动
专区
工具
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将按钮添加到我的多步表单
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【愚公系列】《AIGC辅助软件开发》013-AI辅助客户端编程:AI辅助 iOS 应用开发

- **动画**:了解 SwiftUI 中的动画机制,学习如何为视图添加动画效果。- **表单**:学习如何使用表单来收集用户输入。...#### 5.2 发布到 App Store- **应用签名和测试**:学习如何对应用进行签名并在实际设备上测试。- **App Store 提交**:了解如何将应用打包并提交到 App Store。...状态与绑定(State and Binding)在 SwiftUI 中,视图可以根据状态自动更新。`@State` 用于声明一个状态变量,当状态发生变化时,依赖这个状态的视图会自动更新。...这些变量是可变的,当它们发生变化时,SwiftUI 会自动更新视图。- `username` 和 `password`:分别用于存储用户输入的用户名和密码。...`@State`- **功能**:`@State` 是 SwiftUI 中的属性包装器,用于声明可以改变的状态变量。这些变量在视图中使用时,当它们的值发生变化时,视图会自动更新。

9010

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

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

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

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

    37020

    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 时,事情就变得有趣了 - 在短时间内对屏幕上的视图进行频繁更新。

    15300

    GeometryReader :好东西还是坏东西?

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

    65770

    Swift 周报 第四十二期

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

    22310

    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

    39110

    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。这可能是我在这个项目上做过的最明智的选择。

    5.1K20

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

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

    10110

    SwiftUI 之 HStack 和 VStack 的切换

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

    2.9K10

    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

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

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

    1.1K40

    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里使用SwiftUI;SwiftUI目前还不是很成熟,正在从事iOS开发的程序员可能更应该继续使用Obj-C,直到SwiftUI足够成熟。

    5.4K20

    肘子的 Swift 周报 #005

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

    26150

    SwiftUI 与 Core Data —— 数据获取

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

    4.7K30

    避免 SwiftUI 视图的重复计算

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

    9.3K81
    领券