ios - SFSafariViewController初始化方法强制使用iOS11支持的版本

标签 ios xcode sfsafariviewcontroller xcode9-beta

随着Xcode 9 Beta和iOS11预览版的最新更新,SFSafariViewController init方法进行了一些更改。

@available(iOS 11.0, *)
public init(url URL: URL, configuration: SFSafariViewController.Configuration)

@available(iOS, introduced: 9.0, deprecated: 11.0)
public convenience init(url URL: URL, entersReaderIfAvailable: Bool)

从iOS11开始支持一种新的init方法,而iOS11将弃用当前可用的初始化方法。问题在于当前方法没有公开,因此无法覆盖。如果我们要使用Beta运行现有项目,则这将强制使用新的init方法。有没有人找到在新的Xcode Beta中使用现有init方法的方法?

编辑:为澄清起见,这是我的子类中init方法的摘要
class BPSafariViewController: SFSafariViewController {
    override init(url URL: URL, entersReaderIfAvailable: Bool) {
        super.init(url: URL, entersReaderIfAvailable: entersReaderIfAvailable)
        if #available(iOS 10.0, *) {
            preferredControlTintColor = UIColor.BPUIColor()
        } else {
            view.tintColor = UIColor.BPUIColor()
        }
    }
}

最佳答案

您可以在检查iOS版本的同时执行以下操作。

var safariController: SFSafariViewController?
if #available(iOS 11.0, *) {
    safariController = SFSafariViewController(url: URL(string: "your_url")!)
} else {
    safariController = SFSafariViewController(url: URL(string: "")!, entersReaderIfAvailable: true)
}

关于ios - SFSafariViewController初始化方法强制使用iOS11支持的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44450964/

相关文章:

objective-c - 如何枚举 CGPoints 的 nsmutablearray?

ios - 'PFUser' 没有名为 'subscript' 的成员

ios - 电弧和无电弧问题

xcode - Xcode beta 7.3 (7D162j) 中的 UIFont 错误?

ios - 滚动浏览 TableView 时应用程序关闭 'NSRangeException'

objective-c - 查找AppDelegate.m文件

ios - 在 SFSafariViewController 中嵌入 Javascript

swift - Facebook 登录不会在登录后关闭登录对话框

ios - 在 SFSafariViewController 上设置完成按钮颜色

ios - 导航栏颜色不在状态栏下