【问题标题】:What happens for older iOS users if I update my UIKit app to SwiftUI?如果我将 UIKit 应用程序更新为 SwiftUI,老 iOS 用户会发生什么?
【发布时间】:2021-07-03 06:02:15
【问题描述】:

我有几个基于 UIKit 的 iOS 应用程序已经在 AppStore 上分发,我想更新这些应用程序,我正在考虑切换到 SwiftUI。

我的问题是:对于已经拥有该应用但运行的 iOS 版本早于 iOS13 的用户会发生什么?应用程序是否会完全不可用,或者他们会保留使用旧版 UIKit 的能力?

非常感谢!

【问题讨论】:

    标签: ios swiftui app-store


    【解决方案1】:

    要在您的应用中允许 SwiftUI,您必须允许支持 iOS 13 及更高版本。您可以通过将应用程序的支持更改为 iOS 13 及更高版本或在新代码周围使用“@available(iOS 13.0, *)”装饰器来实现。 在第一种情况下,用户将保持使用其设备上安装的最新版本的能力。他们将无法更新到较新的版本。 在后一种情况下,作为开发人员,您需要进行更多处理。用户将能够继续和更新应用程序并使用您提供的替代代码

    【讨论】:

      【解决方案2】:

      您可以使用编译器指令为运行 iOS 13 的用户创建 SwiftUI 视图,并为 iOS 12 或更低版本提供 UIKit 替代方案。

      例如,您可以将 SwiftUI 视图标记为仅适用于 iOS 13:

      @available(iOS 13.0, *)
      struct MyView: View {
        // ...
      }
      

      并创建一个 UIKit 替代方案:

      class MyViewController: UIViewController {
        // ...
      }
      

      然后,在呈现视图时,您可以有条件地显示正确的版本:

      let destinationVC: UIViewController
      
      if #available(iOS 13.0, *) {
        destinationVC = UIHostingController(rootView: MyView())
      } else {
        destinationVC = MyViewController()    
      }
      self.present(destinationVC, animated: true, completion: nil)
      

      【讨论】:

        猜你喜欢
        • 2023-03-07
        • 1970-01-01
        • 2011-08-31
        • 1970-01-01
        • 1970-01-01
        • 2012-09-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多