4

我正在制作通用应用程序,使用故事板,并且我已将UISearchBarUISearchDisplayController添加到我的某个表格视图中。我把它全部吸引住了,并且可以很好地搜索。问题是当我将新的视图控制器推到导航堆栈上时。在iPhone上,这很好,但在iPad上,它会导致推送的视图控制器在导航栏下方偏移(我不得不手动让导航栏重新出现,以便您可以返回)。iPad桌面视图上的UISearchBar在导航控制器栏下消失

然后,当你浏览回哪里搜索正在发生的原始表视图,搜索仍然活跃,但UISearchBar隐时现的导航栏后面,意思是有没有办法消除它,但不删除查询。这也意味着它不再可用,因为你不能回到它。

可能最好的说明使用一些截图。

下面是它的外观,当你第一次打开实现代码如下:

enter image description here

然后做搜索是罚款:

Doing the search is fine

点击进入到下一个屏幕,我们可以看问题:

enter image description here

然后回原来的屏幕上,还在做搜索,但没有搜索框:

Search box half-buried

然后,如果我删除一切从搜索框,并摆脱了叠加的,我可以看到当我向上滚动表格视图时的搜索框,但无法达到它。尽管如此,我无法获得可靠的屏幕截图。

我到处寻找解决方案,但一直没有找到。我已经尝试在viewDidAppear方法中调用[self setNeedsDisplay][self setNeedsLayout],但这似乎没有效果。如果我改变设备的方向,它似乎会纠正自己,我试图通过调用这些方法来复制它在那种情况下会做的事情。

iPad的故事板的结构是:SplitViewController - >导航器 - >UITabBarController - >UITableViewController(含UISearchBar etc.f) - >UITableViewController

回答

1

我提出这个问题给苹果DTS,他们回答说:

iPad的故事板的结构是:SplitViewController - >导航器 - >的UITabBarController - >的UITableViewController(包含的UISearchBar etc.f) - >的UITableViewController

事实是,你的项目阿尔基但不符合我们的指导原则: 从iOS视图控制器目录的组合视图控制器界面部分: 然而,组合视图控制器时,包含的顺序很重要;只有某些安排是有效的。遏制的顺序,从子到父,如下:

内容视图控制器和容器视图控制器具有柔性边界(如页面视图控制器) 导航视图控制器 标签栏控制器 拆分视图控制器

基本上,你应该有一个结构如下: SplitViewController - >的UITabBarController - >导航控制器 - >的UITableViewController(包含的UISearchBar etc.f) - >的UITableViewController>

+0

我有类似的问题,固定通过改变导航栏从半透明到不透明,突然间他开始工作 - 这可能是一个IOS 7的事情。 – 2013-12-12 21:51:46

+1

Hi Rob。我有同样的问题,但不明白你在这里说什么。我该如何解决? – Lucas 2014-03-30 14:00:37

相关问题