我试图让我的iOS7应用在iOS8上运行,我发现UISearchController
取代了iOS8中的UISearchDisplayController
。
我当然可以使用UISearchController
代替UISearchDisplayController
,但我的应用不再适用于iOS7。
如何让我的应用在两个iOS版本上运行?我是否需要为iOS8制作另一个故事板?
提前致谢
答案 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];
}