我正在制作一个基于tabBar和navigationBar的应用程序。在它上面我点击它时有一个按钮然后在UIImagePickerControllerSourceTypePhotoLibrary的帮助下我打开了图像库但是imagePicker默认后退按钮,取消按钮未显示在视图上。就像我使用UIImagePickerControllerSourceTypeCamera然后相机窗口打开但我无法看到单击按钮来捕获图像,因为它将被tabBar隐藏。所以请帮我解决这个问题。这是图片的截图。
答案 0 :(得分:7)
您可以在TabbarController上显示图像选择器(从AppDelegate获取它或在其中实现它),而不是像这样的视图控制器:
YourAppDelegate* appDel = (YourAppDelegate*)[[UIApplication sharedApplication] delegate];
[appDel.tabBarController presentModalViewController:picker animated:YES];
注意:来自 ios 6 presentModalViewController:animated:已弃用并替换为 presentViewController:animated:completion :
答案 1 :(得分:2)
如果项目在故事板中,您将没有对它的引用(您在代码中创建的)。
相反,只需爬上视图层次结构并以此方式抓取标签视图控制器。
UITabBarController * tabBarController = (UITabBarController*)self.parentViewController;
[tabBarController presentViewController:picker animated:YES completion:^(void){
}];
然而,如果你在视线中出现,你将不得不处理在解雇后回来的相机。 (做一些状态以防止或不在那里。)
我知道这是一个古老的问题,但我认为它会帮助人们度过一段美好的时光,因为这对我有用。
答案 2 :(得分:0)
对我来说,这一行解决了这个问题,而pickercontroller位于Tab栏上方
picker.modalPresentationStyle = .custom;
答案 3 :(得分:0)
您可以使用shouldSelectViewController
的{{1}}方法来完成以下操作:
UITabBarControllerDelegate
}
答案 4 :(得分:-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];
}
答案 5 :(得分:-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];