SwiftUI:onChange(of:scenePhase)没有触发
Posted
技术标签:
【中文标题】SwiftUI:onChange(of:scenePhase)没有触发【英文标题】:SwiftUI : onChange(of: scenePhase) is not firing 【发布时间】:2021-10-18 08:57:24 【问题描述】:我正在使用 SwiftUI 开发一个项目,但在接收应用程序进入前台和后台等事件时遇到问题。这些事件根本没有触发。请参考下面的代码。
import SwiftUI
@main
struct testApp: App
@Environment(\.scenePhase) private var scenePhase
var body: some Scene
WindowGroup
ContentView()
.onChange(of: scenePhase) phase in
if phase == .background
print("background")
if phase == .active
print("active")
if phase == .inactive
print("inactive")
import SwiftUI
struct ContentView: View
var body: some View
Text("Hello, world!").padding()
Xcode 版本为 12.5,在 ios 14.0 - 14.5 模拟器上运行。我在 iOS 15 上试过,效果很好。这是 iOS 14 中的某种错误吗?
我对开发 iPhone 应用程序非常陌生。任何帮助将不胜感激。
【问题讨论】:
这是否回答了您的问题***.com/a/62840614/12299030? 感谢您的评论!我尝试了几乎所有可以在 Stack Overflow 上找到的解决方案,包括您刚刚发布的链接,但仍然没有运气......整天都在这个问题上...... 【参考方案1】:您可以将 .onReceive() 与您需要的通知发布者一起使用。
【讨论】:
以上是关于SwiftUI:onChange(of:scenePhase)没有触发的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI 2 .onChange() 中的选取器不会更改 UINavigationBar.appearance()
如何使用 ipad Playground 在 swiftUI 上运行 Scene 和 App 以实现 swift