【发布时间】:2011-01-21 09:00:43
【问题描述】:
我有一个UISearchDisplayController 设置,其中UITableViewController 嵌套在UINavigationController 中。当进行选择时,触发UITableView's 987654325 didSelectRowAtIndexPath didSelectRowAtIndexPathformet,这将新视图推送给父导航控制器。这个新视图应该在入口处隐藏导航栏。
[[self navigationController] setNavigationBarHidden:YES animated:NO];
我在didSelectRowAtIndexPath 方法中使用这一行来隐藏导航栏。当不使用搜索控制器选择行时,这可以正常工作,但在选择搜索结果时会被覆盖。似乎UISearchDisplayController 有权在选择行后的某个时间取消隐藏导航栏。
如果我将setNavigationBarHidden 调用移动到目标视图的viewWillAppear 方法中,结果是相似的。我可以通过在 viewDidAppear 中调用 hide 来使其工作,但这会产生一个 非常 尴尬的过渡效果,让人感觉跳跃和格格不入。我想让导航栏在新视图滑到屏幕上之前已经隐藏。
有谁知道导航栏的取消隐藏发生在哪里,和/或我可以通过什么方式覆盖此行为?
【问题讨论】:
-
对不起,我还没有标记正确的答案;我最终确实找到了一个可行的 hack,它可能与下面的一个相同,但我已经继续前进并且有一段时间没有看过那个项目了。当我有机会时,我会检查我使用的方法并更新这个问题。
-
你最终使用了哪个 hack?
标签: iphone iphone-sdk-3.0 uisearchdisplaycontroller