I have a UITableViewController
with a UISearchDisplayController
(and UISearchBar
) that is contained in a UINavigationController
as the root element. Is it possible to configure it so the UISearchBar
appears in place of the UINavigationBar
? I don't think hiding the navigation bar will work, a the next screen (pushed on) requires it to be visible (and this will create a strange animation glitch).
I'm basically going for a screen like the App Store search tab.
I've uploaded a sample screenshots of how it looks now:
In the viewDidLoad method of the controller you are pushing
Assign yourself as the delegate of the UINavigationController and implement
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
.Then use the passed in navigationController to hide the navigation bar.
[navigationController setNavigationBarHidden:YES animated:animated]
Edit: Come to think of it, it would be better to pass the animated value into
-setNavigationBarHidden:animated:
as well. Code updated.Here is my solution:
You don't need to hide the UINavigationBar, instead, you could merge the UISearchBar into UINavigationBar.
In YourClass.m file:
1. add a UISearchBar property
2. add the UISearchBar into the NavigationItem in the viewDidLoad section. code:
last, don't forget to edit your .xib file. Just add the UISearchBar object right down the UINavigationBar and connect the referencing outlets of the UISearchBar to the File's Owner. Good luck!
I guess you can hide your navigationbar by setting the 'navigationBarHidden' property to true.