程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如果我将 UIKit 应用程序更新为 SwiftUI,对于较老的 iOS 用户会发生什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如果我将 UIKit 应用程序更新为 SwiftUI,对于较老的 iOS 用户会发生什么??

开发过程中遇到如果我将 UIKit 应用程序更新为 SwiftUI,对于较老的 iOS 用户会发生什么?的问题如何解决?下面主要结合日常开发的经验,给出你关于如果我将 UIKit 应用程序更新为 SwiftUI,对于较老的 iOS 用户会发生什么?的解决方法建议,希望对你解决如果我将 UIKit 应用程序更新为 SwiftUI,对于较老的 iOS 用户会发生什么?有所启发或帮助;

我有几个基于 UIKit 的 iOS 应用程序已经发布在 AppStore 上,我想更新它们,我虑切换到 SwiftUI。

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

非常感谢!

解决方法

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

,

您可以使用编译器指令为运行 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)

大佬总结

以上是大佬教程为你收集整理的如果我将 UIKit 应用程序更新为 SwiftUI,对于较老的 iOS 用户会发生什么?全部内容,希望文章能够帮你解决如果我将 UIKit 应用程序更新为 SwiftUI,对于较老的 iOS 用户会发生什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。