Ios 按下按钮时如何显示事件卡

Ios 按下按钮时如何显示事件卡,ios,swift,iphone,swiftui,Ios,Swift,Iphone,Swiftui,我正在使用提醒IOS应用程序。如何显示事件卡按钮 事件添加视图。[Home.swift] [主页。按下+圆圈按钮打开此视图。] 事件卡显示在主页上。[EventList.swift] [活动卡。此卡确实显示在Home.swift上] 我尝试将tapCount保存到userDefaults.inEventList.swift获取tapCount。因为使用ForEach作用域 Home.swift var tapCount = 0 Button(action: {}) { tapCount

我正在使用提醒IOS应用程序。如何显示事件卡按钮

事件添加视图。[Home.swift] [主页。按下+圆圈按钮打开此视图。]

事件卡显示在主页上。[EventList.swift] [活动卡。此卡确实显示在Home.swift上]

我尝试将tapCount保存到userDefaults.inEventList.swift获取tapCount。因为使用ForEach作用域

Home.swift

var tapCount = 0

Button(action: {}) {
    tapCount += 1

    UserDefaults.standard.set.....
}
var body: some View {
        let tapCount: Int16 = UserDefault.standard.Integer(...) as! Int16

        ScrollView(.horizontal, showsIndicators: false) {
            HStack {
                ForEach(0 ..< tapCount) { item in
                    EventView()
                }
            }
        }
    }
事件列表。swift

var tapCount = 0

Button(action: {}) {
    tapCount += 1

    UserDefaults.standard.set.....
}
var body: some View {
        let tapCount: Int16 = UserDefault.standard.Integer(...) as! Int16

        ScrollView(.horizontal, showsIndicators: false) {
            HStack {
                ForEach(0 ..< tapCount) { item in
                    EventView()
                }
            }
        }
    }
var主体:一些视图{
让tapCount:Int16=UserDefault.standard.Integer(…)作为!Int16
滚动视图(.horizontal,showsIndicators:false){
HStack{
ForEach(0..

但不要这样做。请教它。

我昨天在SwiftUI中使用
UserDefaults.standart
的解决方案:

  • 使用所需变量制作
    最终类用户数据
  • init()
    UserDefaults
    设置此变量
  • 在所需视图中设置
    UserData
    类的
    @EnvironmentObject var
    一些简单的例子:

    导入快捷界面
    最终类UserData:observeObject{
    @发布的var-tapCount:Int?{//记住,在第一次启动时它可以为零!
    迪塞特{
    UserDefaults.standard.set(tapCount,forKey:“tapCount”)
    }
    }
    init(){
    //当然,您可以使用UserDefaults.standard.integer(forKey:“tapCount”)??0将其设置为0,但要小心使用ForEach循环
    self.tapCount=UserDefaults.standard.integer(forKey:“tapCount”)
    }
    }
    //如何使用:
    结构SomeView:View{
    @EnvironmentObject var userData:UserDataSettings
    var body:一些观点{
    如果self.userData.tapCount==nil{
    返回任意视图(文本(“无点击!”)
    }否则{
    返回任意视图(滚动视图(.horizontal,showsIndicators:false){
    HStack{
    //你需要检查nil,否则你的应用程序可能会崩溃。这个if…else变量应该可以工作
    ForEach(0..

    最后一件事:当显示视图时(例如,如果这是第一个视图,则在
    SceneDelegate
    中),您需要设置
    .environmentObject(UserData())
    ,然后将此
    UserData
    变量带到其他子视图中)

    谢谢!我正在做你的代码。我得到一个新的错误。函数声明了一个不透明的返回类型,但在它的主体中没有返回语句,从中可以推断出一个基础类型。您知道解决此错误的方法吗?@Kazu_Japanese,检查代码更新,现在它在我的xCode中没有错误(我还将
    EventView
    替换为
    Text(\(项)”)
    @Kazu_Japanese,不客气,如果这个解决方案对您有帮助,我很高兴