1

「テーブル付きのナビゲーションコントローラー->テーブル付きの次のビューコントローラー->QLPreviewController」のような構造のiPhoneアプリがあります。最初のビューコントローラ(ナビゲーションコントローラ付き)のテーブルのセルをタップすると、別のテーブルの新しいビューコントローラが表示され、セルをタップするとQLPreviewControllerが表示されます。

例:最初のテーブルにはグループがあり、2番目のテーブルには-選択したグループのドキュメント、および選択したドキュメントをプレビューするためのQLPreviewControllerがあります。

私のアプリのすべてのViewControllerは、縦向き(上向きではない)でのみ表示される必要がありますが、QLViewControllerはLandscape(左と右)もサポートしている必要があります。

QLPreviewControllerが表示される前にフラグcanRotateをYESに設定しています。AppDelegatecanRotate == YESで、任意の方向に対してYESを返した場合は、QLPreviewControllerを回転させます。メソッドpreviewControllerWillDismissのQLPreviewControllerDelegate:(QLPreviewController *)コントローラーはフラグcanRotateをNOに戻します。しかし、QLPreviewControllerが閉じる前に向きが横向きだった場合、すべてのViewControllerは横向きのままになります...

WillDismissメソッドでViewControllerを縦向きに戻すにはどうすればよいですか?

4

1 に答える 1

2

私が自分のアプリケーションで行ったこと(多かれ少なかれあなたのアプリケーションに似ています)は次のとおりです。

Yes1)両方の画面にshouldRotateを設定します。

2)最初のビューには、次のマスクを設定します。

return UIInterfaceOrientationMaskPortrait

2番目のビューの場合:

return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscape;
于 2012-11-13T08:01:13.627 に答える