我在按钮动作功能中使用此代码:
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];
一个人可以帮我解决我做错的事吗?
答案 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;
}
它有效。