如何将 IBOutlet 标记为可用于特定 iOS 版本
Posted
技术标签:
【中文标题】如何将 IBOutlet 标记为可用于特定 iOS 版本【英文标题】:How do I mark an IBOutlet as available for a specific iOS version 【发布时间】:2018-05-21 10:01:22 【问题描述】:我正在使用仅适用于 ios 11 的 PDFKit 原生框架,并且我的项目针对的是较旧的 iOS 版本。
Xcode 让我将整个UIViewController
类标记为@available(iOS 11.0, *)
我想使用不同的UIView
处理在相同UIViewController
上的旧iOS 版本上查看PDF,这将使用UIWebView
或第3 方库。我怎样才能做到这一点?
【问题讨论】:
如果您有两种完全不同的controlling
数据方式,每个都有自己的view
,也许两个独立的viewcontrollers
是更好的解决方案?创建一个基类(如果您使用 Swift,则创建一个协议 + 扩展)并将您的共享功能放在那里。然后制作两个子视图控制器来呈现数据。
这是可能的,但我想问我是否可以使用相同的UIViewController
而不必复制我的 UI。
【参考方案1】:
您可以在同一视图控制器上为特定于版本的执行设置此条件。
if #available(iOS 11.0, *)
let pdfView = PDFView(frame: UIScreen.main.bounds)
let url = Bundle.main.url(forResource: "How", withExtension: "pdf")
pdfView.document = PDFDocument(url: url!)
self.view.addSubview(pdfView)
else
// Fallback on earlier versions
【讨论】:
我不能为 IBOutlets 这样做。PDFKit
所需的 PDFView
仅适用于 iOS 11。
您不能为 IBOutlets 设置此条件。请检查已编辑的答案。以上是关于如何将 IBOutlet 标记为可用于特定 iOS 版本的主要内容,如果未能解决你的问题,请参考以下文章
如何将 IBOutlet 值从视图传递到 VIPER iOs 中的交互器?