这是 iOS14 中预期的 @State var 行为还是一个错误?

2024-01-21

当我在 iOS14 sim 或设备上运行为 iOS14 编译的以下代码时,更新的 @State 变量“选择”不会传递到显示为 .sheet(... 确切的代码在 iOS 13.5 sim 或 13.6 设备上运行正常

如果我在视图中的某个位置放置一个文本(“”)并显示正在更新的变量,则代码在 iOS 14 上按预期运行。

似乎只有当我显示该值时,.sheet 才会再次渲染,并使用正确的值更新 MyView(tenum: Selection) 。

在下面的代码中,只需取消注释下面的行即可使其在 iOS14 中运行

// Text("当前:(selection.rawValue)")

import SwiftUI

struct ContentView:View {
    
    @State private var selection=MyView.TestEnum.ONE
    @State private var presentSheet=false
    
    var body: some View {
        VStack {
//            Text("Currently: \(selection.rawValue)")
            Button(action: {
                selection=MyView.TestEnum.TWO
                print("selecting: \(selection.rawValue)")
                presentSheet=true
            }, label: {
                Text("Select TWO")
            })
            .sheet(isPresented: $presentSheet, onDismiss: {
                print("dismissed")
            }) {
                MyView(tenum: selection)
            }
        }
    }
}

struct MyView:View {
    enum TestEnum: String, Codable {
        case ONE="ONE"
        case TWO="TWO"
    }
    var tenum:TestEnum
    
    var body: some View {
        Text("enum: \(tenum.rawValue)")
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这是 iOS14 中预期的 @State var 行为还是一个错误? 的相关文章

  • 在视图之间传递变量 SwiftUI

    再次基本问题 我想让变量 anytext 对于我要添加的所有未来视图都可见且可访问 在我的例子中 变量将是String 如果是的话 程序会改变吗 Float 我怎样才能将其另存为全局变量 如果我重新启动应用程序 变量会自行删除吗 如何保存即
  • 覆盖菜单按钮标签文本颜色 (MacOS SwiftUI)

    我可以覆盖菜单按钮标签的 设置后变暗 颜色吗 下面的 GIF 显示了一个清晰明亮的菜单项 在新选择后会变暗 此系统样式的默认行为 例如 在触控板首选项中 但它不符合可访问性标准 例如 WCAG 要求活动控件中该字体大小的亮度对比度 gt 4
  • 不符合 BindableObject 协议 - Xcode 11 Beta 4

    尝试一下那里的例子 找到一个项目 其中有一个类bindableobject并且它没有给出任何错误 现在 Xcode 11 beta 4 已经发布 我收到错误 类型 UserSettings 不符合协议 BindableObject 它有一个
  • 共享扩展 - 自 iOS 14 以来首次尝试时应用程序未显示在共享菜单中

    升级到 Xcode 12 和 iOS 14 后 似乎开始发生一些奇怪的事情 应用程序以前在共享菜单选项中显示良好 但突然它表现得很奇怪 并且仅在第二次尝试后才显示 我的目标是获取网页网址 这是我的共享激活规则 我什至尝试过新项目 并添加了带
  • SwiftUI 无法使用 navigationLink 来回导航

    请注意 在 gif 中 一旦我导航并关闭新视图 我就无法返回 这是 SwiftUI 错误还是导航链接的误用 struct ContentView View var body some View return NavigationView N
  • 为应用程序创建了新的 WidgetKit 扩展:SwiftUI 预览不适用于“appex 必须位于应用程序中”

    我使用的是 macOS 12 6 上的 Xcode 14 0 1 我正在尝试使用 WidgetKit 在现有应用程序中创建一个新的手表复杂功能 首先向我的项目添加一个 Widget 扩展模板目标 这会生成一个新文件夹 其中包含意图定义文件
  • SwiftUI 检测按下删除按钮

    我正在使用 SwiftUI 但我正在编写自己的自定义文本掩码 但当用户按 删除 键时我需要删除 我正在使用onChange方法 但它不检测何时按下特殊键 目前我正在使用 TextField self placeholder text sel
  • 如何使用 NavigationStack 和 SwiftUI 发送额外数据?

    我有三个viewsA B 和 C 用户可以从 A 导航到 B 也可以从 A 导航到 C 用户可以从 B 导航到 C 现在我想区分用户是从 A 到 C 还是从 B 到 C 所以我在寻找如何在 NavigationStack 中传递额外的数据
  • SwiftUI • 如何实现半屏ShareSheet?

    我在我的项目中实现了一个 ShareSheetSwiftUI App using UIViewControllerRepresentable Code struct ShareView UIViewControllerRepresentab
  • 如何按日期正确对从 CoreData 获取的列表进行分组?

    为了简单起见 假设我想创建一个简单的待办事项应用程序 我的 xcdatamodeld 中有一个实体 Todo 其属性id title and date 以及以下 swiftui 视图 如图所示的示例 import SwiftUI struc
  • StateObject 作为 init() 中另一个对象的参数

    我试图将 StateObject 用户传递给authenticationHelper 但我不能 因为 IDE 说 在初始化所有存储的属性之前使用 self 即使它是在结构体的开头初始化的 我考虑过将 user 的初始化移至 init 但同样
  • Swiftui,按钮网格视图

    我在这里检查了有关网格视图的几个问题 但我的问题有点不同 我想为按钮创建一个网格视图 以便每个按钮按下时导航到不同的视图 所以它看起来像这样 这是网格按钮视图 https i stack imgur com Q6WWB jpg 所以我在这里
  • 在 SwiftUI TextEditor 中设置光标位置

    有没有办法以编程方式将光标移动到特定文本行或在 SwifUI 中选择它TextEditor 例如 如果有一个TextEditor里面写着10行 当用户按下按钮时 光标将导航到第三行 或者文本将被选择 目前使用默认的 SwiftUI 是不可能
  • 为什么我的matchedGeometryEffect根据右下点移动?

    我只是尝试使用matchedGeometryEffect 制作一些动画 但是 存在一个错误 即该对象是根据右下点而不是中心进行动画处理的 我使用的代码在这里 import SwiftUI struct Test View Namespace
  • 如何将数组与 setState 一起使用?

    我目前正在使用以下命令将数组映射到 setState 但没有设置任何内容 也没有记录任何错误 如果我明确地逐行写出它 它就会起作用 关于如何解决这个问题有什么想法或建议吗 使用数组设置状态 不设置状态 const myData messag
  • SwiftUI - 从 NSObject 继承的 ObservableObject 在 iOS 13 中不会更新

    我知道 这是 无法在 iOS XX 中工作 问题之一 但我完全陷入困境 所以我有一个ObservableObject继承自的类NSObject 因为我需要听委托方法UISearchResultsUpdating class SearchBa
  • 在SwiftUI中,如何高性能地绘制阴影?

    我用 shadow color radius x y 在我的应用程序中绘制阴影 这是我所知道的在 SwiftUI 中绘制应用程序的唯一方法 我用 sheet isPresented content 方法弹出一个视图 其中包含很多阴影 当我调
  • 针对 iOS 10.3 进行编译,但模块“SwiftUICharts”的最低部署目标为 iOS 13.0

    知道如何仅在 iOS 版本超过 iOS 13 时导入 SwiftUICharts 框架吗 我通过 文件 gt Swift 包 gt 添加包依赖项 添加了此框架 我的应用程序目标必须是 iOS 10 我将此框架导入到 swiftui 控制器中
  • 简单 Haskell Monad - 随机数

    我正在尝试扩展代码这个帖子 https stackoverflow com questions 3944170 haskell and state 接受的答案 允许我能够基于以种子作为参数的函数 randomGen 调用 randomGen
  • 对成员“buildBlock()”的引用不明确

    我一直在尝试使用 Swift UI 为 iOS 13 制作一个应用程序 但我不断收到这个奇怪的错误 对成员 buildBlock 的引用不明确 无论我做什么 错误都不会消失 我尝试一次对代码段进行注释 以查看哪一部分可能导致了问题 但唯一有

随机推荐