无法打开UIImagePickerController

时间:2012-12-27 14:27:59

标签: iphone ios6

我在按钮动作功能中使用此代码:

picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.allowsEditing = NO;
picker.wantsFullScreenLayout = YES;
[self presentViewController:picker animated:YES completion:nil];

我也在实施代表。 UIImagePickerControllerDelegate

但它崩溃了  [self presentViewController:picker animated:YES completion:nil];

一个人可以帮我解决我做错的事吗?

1 个答案:

答案 0 :(得分:0)

这适用于IOS 6.这些委托方法仅在IOS 6中受支持。 我得到了自己问题的答案。我的应用程序仅针对横向模式开发。因此,imagePickerView无法呈现自身,因为它的默认方向是横向。所以我使我的应用程序支持横向和纵向模式。在app委托中我使用了方法

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    return UIInterfaceOrientationMaskAll;
else  /* iphone */
    return UIInterfaceOrientationMaskAllButUpsideDown;
}

在rootViewController中,我使用以下代理强制viewController处于横向模式并保持横向模式。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if(interfaceOrientation == UIInterfaceOrientationLandscapeRight)
    return YES;
else
    return NO;
}
- (BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeRight;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeRight;

}

它有效。