UIImagePickerController in iOS 7 status bar

Theodoros80 picture Theodoros80 · Sep 27, 2013 · Viewed 8.2k times · Source

In io7,the status bar on top a view is a nightmare.Fortunally i managed to make it work so it will be placed above the view.I did it like this:

- (void)viewDidLoad
{
    [super viewDidLoad];
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
         self.view.backgroundColor=[UIColor colorWithRed:(152/255.0) green:(204/255.0) blue:(51/255.0) alpha:1] ;
        CGRect frame = self.topNav.frame; frame.origin.y = 20;
        self.topNav.frame = frame;
    }
....
}

Now my status bar is above my navigation bar.

But when it comes to calling UIImagePickerController things are different.The above code has no effect. I tried to do this:

- (void)showImagePickerForSourceType:(UIImagePickerControllerSourceType)sourceType
{


    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];

 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {

            CGRect frame = self.imagePickerController.frame; frame.origin.y = 20;
           self.imagePickerController.frame = frame;
        }

    imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
    imagePickerController.sourceType = sourceType;
    imagePickerController.delegate = self;
    self.imagePickerController = imagePickerController;
    self.imagePickerController.allowsEditing=YES;
....
}

and the result is:

enter image description here

Any chance that my status bar(when displaying the camera for taking pictures) above the camera controls?

Thank you.

Answer

Deepesh picture Deepesh · Sep 27, 2013

I have same problem... and solve my proble... Add The key in .plist file

'View controller-based status bar appearance' and set to NO.

And add in appDelegate.

[application setStatusBarHidden:NO]; 
[application setStatusBarStyle:UIStatusBarStyleDefault]; 

Note:- change the **setStatusBarStyle** according to your app background color