[英]Push a viewController from the UIImagePickerController camera view
I'm developing a messaging app (something like WhatsApp), users can send text and image messages to one another. 我正在开发一个消息传递应用程序(类似于WhatsApp),用户可以相互发送文本和图像消息。
when user wants to send an image, he can choose one from the camera roll or he can take one with the camera. 当用户想要发送图像时,他可以从相机胶卷中选择一个,或者他可以用相机拍摄一个。
This is how I present the UIImagePickerController
for both cases: 这就是我为两种情况呈现
UIImagePickerController
的方式:
- (void)handleTakePhoto
{
UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
ipc.delegate = self;
ipc.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentModalViewController:ipc animated:YES];
[ipc release];
}
- (void)handleChooseFromLibrary
{
UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
ipc.delegate = self;
ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
NSString *desired = (NSString *)kUTTypeImage;
if ([[UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary] containsObject:desired]) {
ipc.mediaTypes = [NSArray arrayWithObject:desired];
}
[self presentModalViewController:ipc animated:YES];
[ipc release];
}
After the user choose/take a picture I'm pushing a SendImageViewController
that shows the image in full screen and has a button to actually send the image. 在用户选择/拍照后,我正在推送一个
SendImageViewController
,它以全屏显示图像,并有一个实际发送图像的按钮。
This is how I push it: 这是我推动它的方式:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
SendImageViewController *sivc = [[SendImageViewController alloc] initWithImage:image
delegate:self];
[picker pushViewController:sivc animated:YES];
[sivc release];
}
When I push SendImageViewController
from the camera roll everything works great. 当我从相机胶卷推送
SendImageViewController
,一切都很好。 The problem is that I can't push my SendImageViewController
when the image is taken from the camera, because the camera doesn't have a navigation bar (I tried to push it but my SendImageViewController
view doesn't presented well) 问题是,当从相机拍摄图像时,我无法推送我的
SendImageViewController
,因为相机没有导航栏(我试图推动它但我的SendImageViewController
视图没有很好地呈现)
How can I deal with this? 我怎么处理这个?
* I don't want to dismiss the picker and then push the SendImageViewController
, I want that the SendImageViewController
will be pushed on top of the camera/camera roll, so when I tap the back button I'll back to the camera/camera roll view. *我不想解雇拾取器,然后推送
SendImageViewController
,我希望SendImageViewController
将被推到相机/相机胶卷的顶部,所以当我点击后退按钮时我会回到相机/相机胶卷视图。
Try showing the navigation bar like this : 尝试显示导航栏,如下所示:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent animated:YES];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
[picker setNavigationBarHidden:NO animated:YES];
[picker pushViewController:vc animated:YES];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.