【问题标题】:iOS 15.4 - SwiftUI + CarPlay - State not updatingiOS 15.4 - SwiftUI + CarPlay - 状态未更新
【发布时间】:2022-06-17 19:48:27
【问题描述】:

随着iOS 15.4(2022 年 3 月 14 日)的更新,CarPlay 应用中的状态更新 (SwiftUI) 似乎已被破坏。

我已将代码简化为以下示例。请注意,这在 iOS+CarPlay 15.3 中可以正常工作。这也适用于运行 15.4 的 iOS(仅限)应用

struct ContentView: View {
    @State private var test: Int = 0
    var body: some View {
        VStack {
            Text("Seconds elapsed: \(self.test)")
        }
        .onAppear {
            Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in
                self.test += 1
            }
        }
    }
}

我可以得出结论,SwiftUI CarPlay 应用程序中的状态未更新。有没有更新状态的新方法?我似乎无法确定我可能错过的任何事情。也许使用 SwiftUI 还没有完全支持 CarPlay 集成。 我还修改了代码以使用顶部的菜单按钮来增加self.test。这也没有任何效果。

配置信息

CarPlay 应用是使用 Info.plist 设置的。

Application Scene Manifest
> Scene Configuration
>> CPTemplateApplicationSceneSessionRoleApplication (Array)
>>> Item 0
>>>> UISceneDelegateClassName = $(PRODUCT_MODULE_NAME).AppDelegate
>>>> UISceneConfigurationName = Default Configuration

我在AppDelegate 中收听CPTemplateApplicationSceneDelegate 并相应地提交相应的模板。然后我将UIHostingController 绑定到CPWindowrootViewController 属性。

我很想了解导致这种状态更新不足的原因。不知道我在这里缺少什么。非常感谢您的努力和回复。

【问题讨论】:

  • 您是否尝试过使用设备和汽车?
  • 是的。在设备和实际汽车(现场环境)上都进行了尝试。不过感谢您的建议!
  • 你能在应用委托中显示代码吗?

标签: ios swift swiftui carplay


【解决方案1】:

我可以确认这个问题现在在最新的测试版软件中得到了神奇的解决。 (iOS 16 测试版 1)

没有添加或更改额外的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 2020-06-12
    相关资源
    最近更新 更多