In my application that works fine on iOS 4 navigationBar dissappeared starting iOS 5. Here is what I figured caused issue: I was removing subviews in RootViewController view
You could make your added views subclasses of their respective UIKit classes and check against those specific subclasses. Really though, to have the clearest, most readable code, you should subclass the navigation controller and navigation bar to allow for a custom image and label to be drawn such that you could simply set the background image and foreground label to nil. It would take a little time to put together, but the end result would be much more extendable.
setTag for those image and uilabel then removing it from code above did the trick.
for(UIView* view in self.navigationController.navigationBar.subviews)
{
if(view.tag == 9 || view.tag == 99)
{
[view removeFromSuperview];
}
}