ios - 这个简单的 SwiftUI 示例有什么问题?
问题描述
我有这个简单的 SwiftUI 应用程序,但它的行为不符合预期。
该应用程序由一个简单地显示一些问候消息的视图和一个触发工作表呈现的工具栏按钮组成。在演示之前,@State
属性 ( tmpEvent
) 被设置为所需的值。
第一次显示工作表时,它不显示新分配的值,而是显示初始化值。在工作表的所有后续演示文稿中,它都按预期工作。
我在这里想念什么?
import SwiftUI
struct ContentView: View {
@State private var presentingSheet = false
@State private var tmpEvent = Event(desc: "default Event")
@State private var counter = 0
var body: some View {
NavigationView {
VStack {
Text("Hello Test App")
}
.toolbar {
Button(action: showSheet) {
Label("Open sheet", systemImage: "plus")
}
}
.sheet(
isPresented: $presentingSheet,
onDismiss: { tmpEvent = Event(desc: "onDismiss Event") }
) {
NavigationView {
VStack {
Text("event: \(tmpEvent.desc)")
}
.navigationBarTitleDisplayMode(.inline)
.navigationTitle(tmpEvent.desc)
.toolbar {
Button(action: { presentingSheet = false }) {
Label("Close", systemImage: "xmark")
}
}
}
}
}
}
private func showSheet() {
counter += 1
tmpEvent = Event(desc: "new Event \(counter)")
presentingSheet = true
}
}
更新:这是Event
结构
struct Event {
var desc: String
}
如果你想玩这个例子,你可以从GitHub下载。
解决方案
推荐阅读
- html - 给我元素“head”的 HTML Validator 缺少子元素“title”的必需实例
- javascript - 根据指定的长度用 null 填充剩余的数组索引
- python - Discord bot 在我运行命令时显示错误,但有时仍会运行命令
- java - org.postgresql.util.PSQLException:int 类型的值错误:(简单的 JDBC 插入)
- r - 过滤数据列有某字
- java - 如何在 Android API 22 上创建 AES 密钥并通过私钥对其进行加密?
- python - CXFreeze:ModuleNotFoundError:没有名为“skimage.feature._orb_descriptor_positions”的模块
- reactjs - 错误:我的模态组件超出了最大更新深度
- amazon-web-services - 为 Neptune 构建 http REST API 请求的 AWS 授权标头
- node.js - 如何在 Nuxt 的 serverMiddleware 中使用正则表达式定义动态路由路径?