3

在此处输入图像描述我正在制作一个基于 tabBar 和 navigationBar 的应用程序。在其中,当我单击它时,我在视图上有一个按钮,然后在 UIImagePickerControllerSourceTypePhotoLibrary 的帮助下,我打开了图像库,但 imagePicker 默认后退按钮,取消按钮未显示在视图上。就像当我使用 UIImagePickerControllerSourceTypeCamera 时,相机窗口打开但我看不到捕获图像的单击按钮,因为它会被 tabBar 隐藏。所以请帮我解决这个问题。这是图像的屏幕截图。

4

5 回答 5

7

您可以在 TabbarController 上显示图像选择器(从您的 AppDelegate 或您实现它的地方获取它)而不是像这样的视图控制器:

  YourAppDelegate* appDel = (YourAppDelegate*)[[UIApplication sharedApplication] delegate];

[appDel.tabBarController presentModalViewController:picker animated:YES];

注意:从ios 6开始, presentModalViewController:animated: 已被弃用并替换为presentViewController:animated:completion

于 2012-10-15T05:56:47.917 回答
2

如果项目在故事板中,您将不会引用它(您在代码中创建的)。

相反,只需爬回视图层次结构并以这种方式获取选项卡视图控制器。

UITabBarController * tabBarController = (UITabBarController*)self.parentViewController;
[tabBarController presentViewController:picker animated:YES completion:^(void){

}];

但是,如果您在视图中确实出现了,您将不得不处理在解雇后重新启动的相机。(制定一些状态以防止这种情况发生或不在那里这样做。)

我知道这是一个老问题,但我认为它会帮助人们度过一段美好的时光,因为这对我有用。

于 2013-11-07T22:33:04.650 回答
1

对我来说,这条线解决了这个问题,pickercontroller 出现在标签栏上方

选择器.modalPresentationStyle = .custom;

于 2018-07-10T06:32:22.607 回答
-1
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.delegate = self; 
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
        picker.wantsFullScreenLayout = YES;

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

        showImageView.image = [info objectForKey:UIImagePickerControllerOriginalImage];
        }
于 2012-10-15T05:07:15.360 回答
-2
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    picker.wantsFullScreenLayout = YES;

    picker.showsCameraControls = YES;
     picker.navigationBarHidden = NO; 
     picker.toolbarHidden = NO;
    picker.allowsEditing=NO;

    [self presentModalViewController:picker animated:YES]; 
于 2012-10-15T04:59:42.793 回答