IPHONE:ABPeoplePickerNavigationController隐藏导航栏

时间:2009-07-12 22:30:54

标签: iphone

您好我有一个ABPeoplePickerNavigationController,在创建时设置了它 navigationBar hidden。

peoplePickerController.navigationBar.hidden = YES;

这很有效,唯一的问题是当用户点击搜索框时 为了搜索一个人,当他从搜索中返回时,将重新显示navigationBar。 如何获得此通知并再次隐藏navigationBar?

我还认为这是一个苹果错误,因为在搜索被点击的常规情况下, 隐藏导航栏以获得更多空间,然后显示,但是 它没有考虑到酒吧可能被隐藏的事实 第一名。

欢迎任何技巧。

2 个答案:

答案 0 :(得分:22)

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

- (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];
}

答案 1 :(得分:3)

如果您认为这是一个错误,则应将其提交至http://bugreporter.apple.com

对我而言,它听起来也像是一个错误,但我会仔细检查文档以确保。如果它没有提及任何内容,那么我建议报告错误。

编辑:另一方面,我认为将导航栏设置为隐藏是一个坏主意。是否有特殊原因要隐藏它?