【问题标题】:How can I hide the navigation bar when pushing a view controller?推送视图控制器时如何隐藏导航栏?
【发布时间】:2012-10-30 07:53:22
【问题描述】:

我正在制作自定义 UIScrollView,例如 pinterest 的两列视图。

滚动视图应该有搜索功能。所以我尝试使用 UISearchDisplayController 但我不能,因为 UISearchDisplayController 只实现 UITableView。

所以,我创建了像 UISearchDisplayController 这样的搜索显示控制器。很好。干得好。

但是我有一个大问题。转到详细视图时,我无法完全实现 UISearchDisplayController 的行为。

见下图。

此图像是 UISearchDisplayController 在 Simulator 的 Contact App 上的行为。

详细视图在推送时有一个导航栏。但第一个视图的导航栏是隐藏的。

UISearchDisplayController 的行为适合转换视图。搜索视图没有 UINavigationBar,详细视图分别有 UINavigationBar。但我的控制器不能这样做。

我调用setNavigationBarHidden:animated 方法尝试在搜索视图上触摸 UISearchBar 时隐藏导航栏。

如何实现第二张图片。有什么想法吗?

对不起我的英语不好:)

【问题讨论】:

  • 当你推送那个视图时你想隐藏第二个视图的栏隐藏吗?
  • 你为什么假设第一个视图导航栏被隐藏只是因为它有不同的色调并且上面有一个搜索字段?
  • 试试这个代码它可能会解决你的问题 [self.navigationController hidesBottomBarWhenPushed]
  • setNavigationBarHidden:animated 有什么问题?不是躲起来了吗?如果是这种情况,为什么不能通过删除后退按钮将搜索栏添加到导航栏本身?它的行为应该是一样的吧?
  • @SmartWork hidesBottomBarWhenPushed 只是隐藏了UITabBar等底栏。

标签: objective-c ios uinavigationbar uisearchdisplaycontroller


【解决方案1】:

搜索栏是不同的视图,所以在这里您需要在视图从一个视图导航到另一个视图时调用以下方法。

self.navController.navigationBarHidden = YES;

或

[self.navigationController setNavigationBarHidden:YES animated:animated];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多