处理关闭和终止应用程序事件 (SwiftUI)

ale*_*ker 10 event-handling swift swiftui

如何在 SwiftUI 中处理关闭和终止应用程序事件?

View
{
    ...
}.onDisappear {
    //My code
}
Run Code Online (Sandbox Code Playgroud)

仅在更改视图时工作,而不是在关闭或终止应用程序时工作。

paw*_*222 14

您可以使用UIApplication.willTerminateNotification

NotificationCenter.default.addObserver(forName: UIApplication.willTerminateNotification, object: nil, queue: .main) { _ in
    // terminating
}
Run Code Online (Sandbox Code Playgroud)

这个答案可以更好地解释如何在 SwiftUI 中使用它:

  • 如果您正在编写 Mac 应用程序,这也适用于“NSApplication.willTerminateNotification”。 (5认同)

Alh*_*dhi 13

您应该使用 .onReceive 修饰符并订阅您想要的通知,如下所示:

YourView()
    .onReceive(NotificationCenter.default.publisher(for: UIApplication.willTerminateNotification), perform: { output in
        // Code to run on will terminate
    })
Run Code Online (Sandbox Code Playgroud)

您可以使用 UIApplicationDelegate 通知和 UIScene 通知

文件: