的UISearchBar到位的UINavigationController UINavigationBar的
的我有被包含在UINavigationController
作为根元素与UISearchDisplayController
(和UISearchBar
)一个UITableViewController
。是否可以配置它,以便UISearchBar
代替UINavigationBar
?我不认为隐藏导航栏会工作,下一个屏幕(推送)要求它是可见的(这将创建一个奇怪的动画故障)。的UISearchBar到位的UINavigationController UINavigationBar的
我基本上去为喜欢App Store的搜索标签的屏幕。
我上传它现在的样子的样本截图:
将自己指定为UINavigationController的的委托,实施- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
。
然后可使用navigationController传递到隐藏导航栏。 [navigationController setNavigationBarHidden:YES animated:animated]
编辑:试想想它,这将是更好的动画值传递到-setNavigationBarHidden:animated:
为好。代码已更新。
我想你可以通过“navigationBarHidden”属性设置为true隐藏你的导航栏。
[navigationController setNavigationBarHidden:YES animated:NO];
在控制器的viewDidLoad方法你是推
[[self navigationController] setNavigationBarHidden:NO animated:YES];
看起来像是同样的问题。 – 2011-02-17 21:51:36
这里是我的解决方案:
你不需要隐藏UINavigationBar的,相反,你可以在合并的UISearchBar到UINavigationBar的。
在YourClass.m文件:
1.添加一个UISearchBar属性
2.添加的UISearchBar到NavigationItem在viewDidLoad中部。 代码:
@interface YourClass()
@property (weak, nonatomic) IBOutlet UISearchBar *searchBar;
@end
@implementation YourClass
- (void)viewDidLoad
{
[super viewDidLoad];
// Reveal cancel button in UISearchBar.
searchBar.showsCancelButton = YES;
// Add UISearchBar as titleView of the UINavigationBar.
self.navigationItem.titleView = searchBar;
}
最后,不要忘记编辑您的.xib文件。只需在UINavigationBar下面添加UISearchBar对象,并将UISearchBar的引用插座连接到文件的所有者。 祝你好运!
然后我遇到问题推动下一个视图控制器时,(即,它不具有导航栏)。如果我尝试重新启用它,我会得到暂时空白的导航栏。 – 2011-02-04 19:51:51