iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用UISearchDisplayController时,弹出窗口不会显示在iPad视图控制器上大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在UIViewController中创建了一个UISearchDisplayController,它位于UINavigationController中.

我使用了正常的init:

@H_616_9@self.displayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self]; self.displayController.searchResultsData@R_197_9016@e = self; self.displayController.searchResultsDelegate = self; self.displayController.delegate = self; self.displayController.displaysSearchBarInNavigationBar = YES;

代码工作正常,并显示iPhone中的灰色视图,但在iPad上它什么都不做.我在网上看,大多数人都说应该自动显示结果的弹出框.我根本没有看到这种情况发生.我是否必须以不同的方式为iPad UIViewControllers执行此操作?

我是以编程方式创建的.

解决方法

我在iPad和iOS7上的模态视图控制器(PageSheet样式)中使用UISearchDisplayController时发现了同样的问题:UISearchDisplayController不会像在iPhone上那样将自身附加到视图控制器的视图层次结构中.

作为一个不干净但有效的解决方法,您可以将自己的UISearchDisplayController生成的tableView附加到您的一个委托方法中的视图层次结构中:

@H_616_9@- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView { if ([[UIDevice currentDevice] userInterfaceI@L_607_11@m] == UIUserInterfaceI@L_607_11@mPad) { tableView.frame = self.view.frame; [self.view addSubview:tableView]; } }

有两个警告:

>您必须自己创建和显示灰色视图,只需在相同的帧大小的self.view上创建一个黑色背景颜色和50%alpha的视图
>您可能必须修复UISearchDisplayController提供的表视图内容insets.

例如:

@H_616_9@- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView { tableView.contenTinset = UIEdgeInsetsmake(44.f,0.f,0.f); }

大佬总结

以上是大佬教程为你收集整理的ios – 使用UISearchDisplayController时,弹出窗口不会显示在iPad视图控制器上全部内容,希望文章能够帮你解决ios – 使用UISearchDisplayController时,弹出窗口不会显示在iPad视图控制器上所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。