cocoa-touch - iPad表格 View 上的UISearchBar消失在导航 Controller 栏下方

标签 cocoa-touch uitableview uinavigationcontroller uinavigationbar uisearchbar

我正在使用 Storyboard开发通用应用程序,并且添加了 UISearchBarUISearchDisplayController到我的一个 TableView 。我已经把它全部连接起来了,并且可以很好地搜索。问题是当我将一个新的 View Controller 推送到导航堆栈上时。在 iPhone 上,这很好,但在 iPad 上,它会导致推送的 View Controller 在导航栏下方偏移(我必须手动使导航栏重新出现,以便您可以返回)。

然后,当您导航回进行搜索的原始 TableView 时,搜索仍处于事件状态,但 UISearchBar现在隐藏在导航栏后面,这意味着如果不删除查询就无法关闭它。这也意味着它不再可用,因为您无法重新使用它。

可能最好使用一些屏幕截图来说明。

这是您第一次打开 tableview 时的外观:

enter image description here

然后进行搜索就可以了:

Doing the search is fine

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

enter image description here

然后回到原来的屏幕,仍在搜索但没有搜索框:

Search box half-buried

然后,如果我从搜索框中删除所有内容并摆脱覆盖,我可以在向上滚动表格 View 时看到搜索框,但永远无法到达它。不过,我无法获得可靠的屏幕抓取。

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

iPad Storyboard的结构是:SplitViewController -> 导航 Controller -> UITabBarController -> UITableViewController (包含 UISearchBar 等 f)-> UITableViewController

最佳答案

我将此问题提交给 Apple DTS,他们回复:

iPad Storyboard的结构是:SplitViewController -> Navigation Controller -> UITabBarController -> UITableViewController (包含UISearchBar etc.f) -> UITableViewController

事实是您的项目架构不遵循我们的指导方针,这些指导方针是:
从 iOS View Controller 目录的组合 View Controller 接口(interface)部分:
然而,当组合 View Controller 时,包含的顺序很重要。只有某些安排是有效的。从子到父的收容顺序如下:

内容 View Controller 和具有灵活边界的容器 View Controller (例如页面 View Controller )
导航 View Controller
标签栏 Controller
Split View Controller

基本上,您应该具有如下结构:
SplitViewController -> UITabBarController -> 导航 Controller -> UITableViewController (包含 UISearchBar etc.f) -> UITableViewController>

关于cocoa-touch - iPad表格 View 上的UISearchBar消失在导航 Controller 栏下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9809601/

相关文章:

swift - 上一个 View Controller 中的更新按钮

iphone - 在没有私有(private) API 的情况下实现自定义 UITabBarController

ios - 单击后隐藏UITableView的删除确认按钮

iphone - UISearch 不显示结果

ios - 有很多嵌套的 UITableViews 是可以的还是有更好的方法来实现这个?

iphone - UINavigationController 使一个 View 模态化

ios - 从 segue 显示 View 时导航栏消失

ios - AVFoundation,如何关闭captureStillImageAsynchronouslyFromConnection时的快门声?

ios - 有人可以解释 'CoreAnimation: timed out fence' 日志消息吗?

iPhone 我如何知道用户何时触摸屏幕但没有移动?