我看到一个奇怪的情况。我在导航栏中放置了一个搜索栏,并将UISearchDisplayController与搜索栏关联起来。现在,当用户点击搜索栏时,搜索显示控制器倾向于隐藏导航栏(因此也隐藏搜索栏)。为了反驳说,我子类UISearchDisplayController并实施了下面的代码: -UISearchDisplayController隐藏导航栏
- (void)setActive:(BOOL)visible animated:(BOOL)animated
{
[super setActive: visible animated: animated];
[self.searchContentsController.navigationController setNavigationBarHidden: NO animated: NO];
}
现在,这种解决原有问题。我能够搜索并导航到其他控制器。
但是,可以说我对视图控制器A进行搜索,然后单击搜索结果,然后将视图控制器B推到导航堆栈上。现在,如果我弹出视图控制器B并返回到A,则我的导航栏消失。它看起来像搜索显示控制器是活动的,所以它隐藏了导航栏。
如果我使搜索显示控制器处于非活动状态,然后按下视图控制器B然后弹出它,则会出现导航栏。
那么,有没有什么办法可以让我的搜索显示控制器保持活动状态,并且当我从导航堆栈中弹出视图控制器B时,导航栏不会消失?
而且我针对iOS6的
(这是一个很长的代码,所以不知道我应该在这里张贴的内容)。
工作就像一个魅力,应该被接受的答案。 – Matt