【问题标题】:How to declare uisearchController globally in Swift如何在 Swift 中全局声明 uisearchController
【发布时间】:2015-12-02 02:37:47
【问题描述】:

我的目标是在 iOS7 及更高版本中运行我的应用程序。我想在 tableView 标题中放置一个搜索栏。我将 UISearchController 用于 iOS8 及更高版本,我将声明放在全局范围内。

var searchController : UISearchController!

但是,如果我将目标更改为 iOS7,则会显示错误

'UISearchController' is only available on iOS 8.0 or newer

XCode 建议我放

@available(iOS 8.0, *)

归因于封闭类,以便我修复它。这样一来,全班只能在iOS8及以上运行。

我的目标是使用 iOS7 的 UISearchDisplayController 和 iOS8 及更高版本的 UISearchController 进行搜索。为此,我需要将其声明为全局变量,因为我需要该变量来更改 tableView 的某些行为。

我可以知道如何在全局范围内声明变量以便实现我的目标吗? 非常感谢。

【问题讨论】:

  • 如果你的应用想要支持所有的ios,你可以只用searchdisplaycontroller,完全没有区别,你也可以只用searchbar,如果这2个是杂乱无章的

标签: ios swift uisearchdisplaycontroller uisearchcontroller


【解决方案1】:

在声明 searchController 变量之前,检查 iOS 版本并进行相应的初始化。做这样的事情

  if #available(iOS 8.0, *) {
                // your iOS 8 related code
            } else {
                // Fallback on earlier versions
            };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    相关资源
    最近更新 更多