实现UISearchController和UISearchDisplayController

时间:2014-08-08 17:40:17

标签: ios ios8

我试图让我的iOS7应用在iOS8上运行,我发现UISearchController取代了iOS8中的UISearchDisplayController

我当然可以使用UISearchController代替UISearchDisplayController,但我的应用不再适用于iOS7。

如何让我的应用在两个iOS版本上运行?我是否需要为iOS8制作另一个故事板?

提前致谢

2 个答案:

答案 0 :(得分:13)

如果您的部署目标设置为iOS 7并且您希望支持iOS 8,您仍然可以使用UISearchDisplayController,它应该在iOS 8上运行没有问题,并且在Xcode中没有出现警告。我没有遇到任何实施UISearchDisplayController的应用程序的不当行为。当我决定不再支持iOS 7时,我会用UISearchController完全替换它。

您可能能够检测操作系统版本并以编程方式实现UISearchController 8+,但如果您使用的是故事板,除非您创建两个不同的故事板,每个操作系统一个,否则很难实现这两个故事板。但是当你需要支持以前的操作系统时,我真的没有必要。弃用通常并不意味着它在最新的操作系统上运行时不再起作用,而是因为有更好的解决方案,所以不建议再使用它。在较新的iOS版本上运行时,已弃用的方法无法正常工作,这种情况很少见。

答案 1 :(得分:0)

// Above ios 8.0
float os_version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (os_version >= 8.000000)
{
      //Use UISearchController  
        // self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController];
}
else
{
     //use UISearchDisaplyController
     // self.controller = [[UISearchDisplayController alloc]initWithSearchBar:self.searchBar contentsController:self];

}