If you want to set background for Navigation Bar to be black and all colors inside it to be white.
Before ios 7, you might have used this code :
[[UINavigationBar appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor],
NSForegroundColorAttributeName,
[UIColor whiteColor],
NSForegroundColorAttributeName,
[NSValue valueWithUIOffset:UIOffsetMake(0, -1)],
NSForegroundColorAttributeName,
[UIFont fontWithName:@"Arial-Bold" size:0.0],
NSFontAttributeName,
nil
]];
But if you use the same code in ios 7, then back button text colorarrow and bar button have still default color.
This is because, behaviour of some of the properties of UINavigationBar has changed from iOS 7. You can see in the image shown below :
enter image description here

Two beautiful links I'd like to share with you. For more details you can go through these links :
  1. iOS 7 UI Transition Guide.
  2. How to Update Your App for iOS 7.

Apple Documentation for barTintColor says :
This color is made translucent by default unless you set the translucent property to NO.
Sample Code :
self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
self
.navigationController.navigationBar.tintColor = [UIColor whiteColor];
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
self
.navigationController.navigationBar.translucent = NO;