【问题标题】:UINavigationBar unhides after search is made搜索完成后 UINavigationBar 取消隐藏
【发布时间】:2012-07-07 17:04:16
【问题描述】:

我不确定这是如何工作的。我有一个 UITabBarController,其中我的第一个选项卡是 UiNavigationController,它的 rootViewController 有一个 UISearchDisplayController 和 UISearchBar。我将 rootViewController 设置为 UINavigationControllerDelegate。

我这样做:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    [self.navigationController.navigationBar setHidden:YES];
}

所以我的导航栏不会显示。那部分有效。在我进行搜索并按回车后,导航栏就会进入并将我的搜索栏推到它下方。这里发生了什么?我还需要在其他地方阻止导航栏显示吗?

我知道我可以以模态方式展示我的视图控制器,因为我以前就是这样做的。但是除了 navBar 问题之外,没有其他理由以模态方式呈现它。一旦进行了搜索并且用户选择了一些东西以进入该项目的更详细的视图,那么我曾经在那里创建了一个 navigationController。如果我在根目录下只有一个 UINavigationController 似乎会更好,因为就像我说的那样,没有理由以模态方式呈现详细列表。谢谢!

【问题讨论】:

    标签: iphone uinavigationcontroller


    【解决方案1】:

    尝试替换

    [self.navigationController.navigationBar setHidden:YES];
    

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

    【讨论】:

    • 那行得通。为什么它有效?我很难看出差异。
    • 导航控制器负责其导航栏。在第一种情况下,您自己隐藏它,但控制器不知道这一点,因此稍后可能会取消隐藏它。但在第二种情况下,您告诉控制器您希望它隐藏,所以它隐藏它并保持隐藏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2016-05-23
    • 2014-01-27
    • 1970-01-01
    相关资源
    最近更新 更多