I know of two methods and each have their own disadvantages:

* <http://idevrecipes.com/2011/01/12/how-do-iphone-apps-instagramreederdailybooth-implement-custom-navigationbar-with-variable-width-back-buttons/>
This one gives you the most flexibility, you can customize everything on the nav bar. However, you need to use the interface builder to create your nav bar. If you create your nav bar programmatically, it's not possible to have a custom nav bar. Please correct me if I'm wrong, i would love to know the solution.
* <http://sebastiancelis.com/2009/12/21/adding-background-image-uinavigationbar/>
This one is done all programmatically, however, you are forced to display the nav bar title, and you can't customize the buttons.

Do you guys know of any better method? (Again, it's for iOS 4.0 as I need the app to be compatible with iOS 4.0+)

Thanks guys,