1

私は非常に奇妙な振る舞いをしています:

  1. iOS 5 ではUIImagePickerController、次のように提示します。

imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; imagePicker.modalPresentationStyle = UIModalPresentationFullScreen; imagePicker.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

[self presentModalViewController:imagePicker animated:YES];

iOS 6 では、これによりクラッシュが発生します。にカテゴリを作成してクラッシュを解決しましたUIImagePickerController:

@implementation UIImagePickerController (NonRotating)

- (BOOL)shouldAutorotate
{
    return NO;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationMaskPortrait;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

@end

問題は、UIImagePickerControllerが回転せず、上向きに表示されることです。さらに、「キャンセル」ボタンを押してピッカーを閉じると、アプリが再びクラッシュします。

  1. UIImagePickerController内部で aを使用するとUIPopoverController、すべて正常に動作します (ポップオーバーが回転しないという事実に属します) が、アプリでポップオーバー ALL ビュー コントローラーを閉じると、回転イベントへの応答が停止し、これによりすべてのアプリがブロックされますオリエンテーション。正しい動作を復元するには、アプリをバックグラウンドから終了して再度開く必要があります。

これは、ポップオーバーを表示するために使用しているコードです

_cameraPopoverController = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[_cameraPopoverController presentPopoverFromRect:_takeFromCamera.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

この問題は私を夢中にさせます!

4

2 に答える 2

0

ピッカー ソースの種類は何ですか? 写真ライブラリ/アルバムまたはカメラロール?

フォト ライブラリ / アルバム ソースを使用していると仮定すると、iPad ではポップオーバーを使用する必要があります。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html (概要、ポイント 4 を参照)

フルスクリーン表示はサポートされていません。

他の問題 (popOver を閉じた後、他の VC の回転が停止する) については、popover への STRONG 参照 (強力なプロパティ) があることを確認してください。ポップオーバーを表示するために使用しているコードを貼り付けます。

于 2013-01-17T16:39:55.790 に答える