0

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

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];

有人可以帮我解决我做错了什么吗?

4

1 回答 1

0

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

-(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;

}

它奏效了。

于 2012-12-28T07:05:37.430 回答