将自定义相机视图推送到UIImagePickerController时,UINavigation栏隐藏的UITableView单元格

时间:2013-06-03 16:13:48

标签: iphone objective-c uiimagepickercontroller

我在cameraOverlay视图上分配了自定义UIImagePickerDelegate(在本例中为UITabViewController)。

在委托方法中:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:NO];
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];

    SelectPhotoTypeViewController *destinationController = [self.storyboard instantiateViewControllerWithIdentifier:@"SelectPhotoTypeView"];

    destinationController.image = [info objectForKey:UIImagePickerControllerOriginalImage] forKey:@"image"];

    [picker pushViewController:destinationController animated:YES];
}

运行时,SelectPhotoTypeViewController会被推送到NavigationController的{​​{1}}(因为它继承自UIImagePicker)。我在UINavigationController中选择了一种照片类型,然后使用SelectPhotoTypeViewController推送UIViewController。在此视图中,UITableView第一行隐藏在UITableView后面。

仅在从UINavigationBar选择图像(即拍摄照片)时才会发生这种情况,但在从图库中选择图像时则不会。可能是什么原因?

2 个答案:

答案 0 :(得分:0)

我认为这是因为状态栏的错误。每次推动时,都需要隐藏状态栏并在控制器内再次显示状态栏。

类似的东西:

    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    [picker dismissModalViewControllerAnimated:YES];
    [[UIApplication sharedApplication] setStatusBarHidden:NO];

或推动..

    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    [picker pushViewController:destinationController animated:YES];
    [[UIApplication sharedApplication] setStatusBarHidden:NO];

按下viewcontroller进行照片时执行此操作。

答案 1 :(得分:0)

我终于把它整理出来了。我用[{1}} s替换了目标UIViewController,现在一切正常。换句话说,我UITableViewController带有UIViewControllerUITableView由于某种原因,UINavigationBar来自相机视图。所有约束都设置正确,所以我不知道为什么会发生这种情况。我认为这是一个答案,因为它是一个解决方案,但不幸的是我不知道为什么会发生这种情况的原因,也许是因为@Juan Munhoes Junior说这是一个状态栏错误。