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 に答える