iOS:从导航栏中删除以编程方式添加的搜索栏
Posted
技术标签:
【中文标题】iOS:从导航栏中删除以编程方式添加的搜索栏【英文标题】:iOS: REMOVING programmatically added search bar from navigation bar 【发布时间】:2014-09-12 19:56:35 【问题描述】:场景
在我的应用程序中,右上角有一个带有“放大镜”图标的导航栏。当用户点击此图标时,导航栏的 titleView 将被 UISearchBar 替换。
我用这段代码添加了搜索栏...
searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(-5.0, 0.0, 320.0, 44.0)];
searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
UIView *searchBarView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 310.0, 44.0)];
searchBarView.autoresizingMask = 0;
searchBar.delegate = self;
[searchBarView addSubview:searchBar];
self.navigationItem.titleView = searchBarView;
所有这些都可以完美运行。现在,当用户结束对 UISearchBar 的编辑时,我需要让 UISearchBar 消失,并再次替换为 titleView 的“标题”。
问题
如何删除 UISearchBar 并在编辑后显示导航控制器的标题?
【问题讨论】:
【参考方案1】:试试这个,
searchBar.hidden = Yes;
【讨论】:
"...并在编辑后显示导航控制器的标题?"【参考方案2】:我没有测试过,但这应该可以工作:
[self.navigationItem.titleView removeFromSuperview];
self.title = @"Nav bar title";
【讨论】:
以上是关于iOS:从导航栏中删除以编程方式添加的搜索栏的主要内容,如果未能解决你的问题,请参考以下文章
iOS v10 或更低版本:如何以编程方式在导航栏底部添加 UISearchController