Add the following code to your view controller:
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
// iOS 7
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
} else {
// iOS 6
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
or
write this in appdelegate.m
[[UIApplication sharedApplication] setStatusBarHidden:YES];
Or add the property Status bar is initially hidden in your plist file

Folks, in iOS 7+
please add this to your info.plist file, It will make the difference :)
UIStatusBarHidden UIViewControllerBasedStatusBarAppearance

I don't know if apply for your case, but in my case the status bar appears after I loaded a UIImagePickerController and change my default screen orientation.
I fix this situation add application.statusBarHidden = YES; inside appDelegate like this:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
// Detect if I need to hide the StatusBar (optional)
if (iNeedToHide == YES) {
application.statusBarHidden = YES;
}
return UIInterfaceOrientationMaskLandscape;
}
i hope it will help you