上传图片时状态栏隐藏



当我从相机上传图像到我的imageview图像成功上传,但我的状态栏变成隐藏。我是iOS新手。请帮助。任何我在app委托中设置的。它们隐藏了我的状态栏。如有任何帮助,不胜感激。

    [application setStatusBarStyle:UIStatusBarStyleLightContent];
       [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];
and i m setting in info.plist  
    View controller-based status bar appearance  NO
    -(IBAction)choosePicture:(id)sender
    {
     imagePicker=[[UIImagePickerController alloc]init];
        imagePicker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
        imagePicker.delegate=self;
        [self presentViewController:imagePicker animated:YES completion:nil];

    }
    -(IBAction)takePicture:(id)sender
    {
      imagePicker=[[UIImagePickerController alloc]init];
        imagePicker.sourceType=UIImagePickerControllerSourceTypeCamera;
        imagePicker.delegate = self;
        [self presentViewController:imagePicker animated:YES completion:nil];
    }
    -(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info
    {
        pickedImage=[info objectForKey:UIImagePickerControllerOriginalImage];
        [self performSelectorInBackground:@selector(saveImage:) withObject:nil];
        image.image=pickedImage;
        pickedImage  =  [self compressImage:pickedImage];

        pickedImageData=UIImageJPEGRepresentation(pickedImage,0.9);
                       [self dismissViewControllerAnimated:YES completion:nil];
    }
-(void)navigationController:(UINavigationController *)navigationController
     willShowViewController:(UIViewController *)viewController
                   animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}
-(BOOL)prefersStatusBarHidden   // also do this for iOS 8
{
    return YES;
}

不确定你说的是哪个iOS版本。我在iOS 8.3中遇到过这个问题,我是这样解决的,在viewWillAppear方法中:

    - (void)viewWillAppear:(BOOL)animated {
        [[UIApplication sharedApplication] setStatusBarHidden:NO];
    }

添加上面的代码,看看问题是否解决了

您的问题是以下代码:

-(void)navigationController:(UINavigationController *)navigationController
     willShowViewController:(UIViewController *)viewController
                   animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}

这个函数将在导航弹出或推送,或呈现或解散视图控制器时被调用。应该像这样检查

-(void)navigationController:(UINavigationController *)navigationController
     willShowViewController:(UIViewController *)viewController
                   animated:(BOOL)animated
{
    if ([viewController isKindOfClass:[UIImagePickerViewController class]])
    {
        [[UIApplication sharedApplication] setStatusBarHidden:YES];
    }
    else
    {
        [[UIApplication sharedApplication] setStatusBarHidden:NO];
    }
}