如何在Swift

时间:2015-12-02 02:37:47

标签: ios swift uisearchdisplaycontroller uisearchcontroller

我将我的应用定位为在iOS7及更高版本中运行。我想在tableView标题中放置一个搜索栏。我在iOS8及以上版本中使用UISearchController,我在全球范围内使用了声明。

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的某些行为。

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

1 个答案:

答案 0 :(得分:0)

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

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