ios – UISearchController searchBar在第一次点击时消失

ios – UISearchController searchBar在第一次点击时消失,第1张

概述我在TableView中实现了一个UISearchController,由一个导航控制器推送. 首先我的问题是每当我点击SearchBar时,它就会消失.当我输入一些文本时,它可以工作,但它保持完全空白.然后我设法使用此代码半解决问题: - (void)searchForText:(NSString*)searchText{ [self.view addSubview:villeSear 我在tableVIEw中实现了一个UISearchController,由一个导航控制器推送.

首先我的问题是每当我点击Searchbar时,它就会消失.当我输入一些文本时,它可以工作,但它保持完全空白.然后我设法使用此代码半解决问题:

- (voID)searchForText:(Nsstring*)searchText{    [self.vIEw addSubvIEw:villeSearchController.searchbar];}

哪个半工作因为现在,当我点击搜索栏时,它会消隐,但是如果我输入一个字符,它会再次出现,然后它就会停留在那里,无论如何.直到我取消搜索,然后再次点击它,在这种情况下它会消隐.
我做了一些测试,这个方法(searchForText)在第一次点击时被调用,所以这不是原因.

有谁知道我如何解决这个问题并让搜索栏从第一次点击出现?

编辑:

这是我初始化SearchController的方法:

villeSearchController = [[UISearchController alloc]   initWithSearchResultsController:nil];villeSearchController.searchResultsUpdater = self;villeSearchController.dimsBackgroundDuringPresentation = NO;villeSearchController.searchbar.delegate = self;villetableVIEw.tableheaderVIEw = villeSearchController.searchbar;villeSearchController.searchbar.scopebuttonTitles = @[];self.definesPresentationContext = YES;[villeSearchController.searchbar sizetoFit];
解决方法 尝试检查navigationbar.translucent属性 – 当UISearchController将呈现searchbar时它应该是YES,否则将是UI错误.

来自@SiavA的更新

更好的解决方案是使用UIVIEwController的extendedLayoutIncludesOpaquebars属性.如果您使用不透明导航栏,只需将其设置为true,即控制器将显示UISearchController(不适用于navigationController).

例如.

- (voID)vIEwDIDLoad {    [super vIEwDIDLoad];    self.extendedLayoutIncludesOpaquebars = !self.navigationController.navigationbar.translucent;}
总结

以上是内存溢出为你收集整理的ios – UISearchController searchBar在第一次点击时消失全部内容,希望文章能够帮你解决ios – UISearchController searchBar在第一次点击时消失所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1004375.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存