【问题标题】:SwiftUI: Dismiss all active sheet viewsSwiftUI:关闭所有活动的工作表视图
【发布时间】:2021-02-22 10:22:31
【问题描述】:

如何关闭应用程序中的所有活动工作表?我有 2 种应用模式

switch appMode {
  case .locked:
    lockedView
  case .unlocked:
    contentView
}

当应用程序模式从一种状态更改为另一种状态时,在当前状态下会有一些工作表视图,此工作表不会消失。有没有一些 SwiftUI 解决方案?

【问题讨论】:

    标签: ios swift swiftui


    【解决方案1】:

    您可以使用此行来关闭所有显示的工作表。

    UIApplication.shared.windows.first?.rootViewController?.dismiss(animated: true, completion: nil)
    

    【讨论】:

      【解决方案2】:

      iOS 15

      “windows”在 iOS 15 中已弃用

      let rootViewController = UIApplication.shared.connectedScenes
              .filter {$0.activationState == .foregroundActive }
              .map {$0 as? UIWindowScene }
              .compactMap { $0 }
              .first?.windows
              .filter({ $0.isKeyWindow }).first?.rootViewController
          
          rootViewController?.dismiss(animated: true) {
              // TODO: something
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-04
        • 2020-05-23
        • 2023-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-01
        • 1970-01-01
        相关资源
        最近更新 更多