- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在开发一个应用程序,它的 View 层次结构与 Apple 的 Music 或 iPod aps 非常相似。它有一个 UITabBarController,其中包含 UINavigationControllers,呈现 UITableViews,最终导致 UIViewController 在其指定的初始化程序中将 hidesBottomBarWhenPushed
设置为 YES
(以隐藏 UITabBar)。以前的 UITableViews 在它们的 tableHeaderView
中都有一个 UISearchBar,我在 viewWillAppear:
中移出了视线。
UISearch 通常保持隐藏状态直到被下拉,除非从 UIView 退出到一个短的 UITableView。它通过 UITableView 的 viewWillAppear:
和 viewDidAppear:
方法以及 UIView 的 viewWillDisappear:
和 viewDidDisappear:
方法和然后最终自行弹出。如果我在 UIView 中注释掉 self.hidesBottomBarWhenPushed = YES;
,那么在退出该 View 时,UISearchBar 将保持隐藏状态。
是什么导致 UITableView 在我隐藏它之后显示 UISearchBar?我可以使用 View 层次结构中更高层的委托(delegate)方法来防止它发生吗?
更新 我用最少的代码创建了一个简单的项目来重现问题。下载 PushySearchBar.zip . (抱歉,我有一个 mod_rewrite 规则阻止从第三方域下载。我已将 Stack Overflow 添加到白名单。现在应该可以下载了。)
最佳答案
退出 UIViewController
时,UISearchBar
中是否有文本?这似乎有可能导致它默认显示。
编辑:(将下面的评论添加到答案正文中以便于扫描/查找,并添加一些解释。)
在 SearchableTableViewController
的 viewDidAppear:
中复制您的 viewWillAppear:
方法体。这解决了我测试中的问题。
基本上,所有这一切都是为了确保在导航动画的任一侧正确设置偏移量。
关于iphone - hidesBottomBarWhenPushed 和短 UITableViews 上的强势 UISearchBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4363137/
我是一名优秀的程序员,十分优秀!