我在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
选择图像(即拍摄照片)时才会发生这种情况,但在从图库中选择图像时则不会。可能是什么原因?
答案 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
带有UIViewController
,UITableView
由于某种原因,UINavigationBar
来自相机视图。所有约束都设置正确,所以我不知道为什么会发生这种情况。我认为这是一个答案,因为它是一个解决方案,但不幸的是我不知道为什么会发生这种情况的原因,也许是因为@Juan Munhoes Junior说这是一个状态栏错误。