代码之家  ›  专栏  ›  技术社区  ›  daniel

iPhone:abpeoplePickerNavigationController隐藏导航栏

  •  6
  • daniel  · 技术社区  · 16 年前

    你好,我有一个abpeoplepikernavigationcontroller,创建时将其设置为 导航栏隐藏。

    peoplePickerController.navigationBar.hidden = YES;
    

    这非常有效,唯一的问题是当用户点击搜索框时 要搜索某个人,当他从搜索中返回时,导航栏将重新显示。 我如何才能得到通知,并使导航栏再次隐藏?

    我也认为这是一个苹果的bug,因为在普通情况下,当搜索被点击时, 导航栏被隐藏以腾出更多空间,稍后显示,但是 它没有考虑到酒吧可能被藏在 第一名。

    欢迎任何花招。

    2 回复  |  直到 16 年前
        1
  •  22
  •   rpetrich    16 年前

    最安全和最简单的方法是跟踪键盘隐藏/显示的时间。

    - (void)keyboardWillHide:(NSNotification *)notification
    {
        peoplePickerController.navigationBar.hidden = YES;
    }
    
    - (void)hideNavbarAndKeepHidden
    {        
        peoplePickerController.navigationBar.hidden = YES;
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];   
    }
    
    - (void)dealloc
    {
        [[NSNotificationCenter defaultCenter] removeObserver:self];
        [super dealloc];
    }
    
        2
  •  3
  •   jbrennan    16 年前

    如果你认为这是一个bug,你应该把它提交给 http://bugreporter.apple.com .

    对我来说,这听起来也像一个bug,但我会仔细检查文档以确保这一点。如果它没有提到任何东西,那么我建议报告这个bug。

    编辑:另一方面,我认为将导航栏设置为隐藏是一个坏主意。有什么特别的理由想隐藏它吗?