我在应用程序上遇到此问题我正在从iOS 6转换到iOS 7。
我在xib中有一个导航栏,在它们下面是一个带有UISearchDisplayController子类的tableview;因为我必须处理搜索默认行为,使搜索栏上升,并通过以下代码隐藏iOS 6下面的导航栏:
-(void)setActive:(BOOL)visible animated:(BOOL)animated
{
if(self.active == visible)
{
return;
}
[self.searchContentsController.navigationController setNavigationBarHidden:YES animated:NO];
[super setActive:visible animated:animated];
[self.searchContentsController.navigationController setNavigationBarHidden:NO animated:NO];
if (visible) {
[self.searchBar becomeFirstResponder];
} else {
[self.searchBar resignFirstResponder];
}
}
现在我想将它转换到iOS 7,行为发生了变化,每当我在搜索栏内写文字时,导航栏就会被隐藏而搜索栏没有上升,搜索结果表被搜索栏重叠,所以导航bar保持隐藏,直到搜索结束。
我想知道这种行为的原因是什么,如何在不隐藏导航栏的情况下保持相同的行为。
提前致谢,感谢所有帮助。
答案 0 :(得分:1)
就行为原因而言,我认为这是UISearchDisplayController
s(以及iOS 8的UISearchController
)的标准操作程序。当UINavigationController
被UITableView
UISearchBar
tableHeaderView
时,UITableView
s,{{1}}等以非常特殊的方式行事。