0

組み込みの iOS UIAlertView にはスキニング機能がないため、代わりに使用している独自の UIAlertViewCustom クラスを作成しました。私のバージョンではグラフィック/フォント/色などのスキニングが許可されている場合を除いて、私のView Controllerはどれも、UIAlertViewが使用されるのと同じようにUIAlertViewCustomのインスタンスを表示できます。

私の UIAlertViewCustom クラスは、新しいキー ウィンドウとルート ビュー コントローラーを作成することで機能します。次に、この新しいルート ビュー コントローラーでメッセージ ビューを描画します。(メッセージを表示することを選択したビュー コントローラーは、UIAlertView で表示されるのと同じように、バックグラウンドで表示されます。

これらすべてが完璧に機能しています。実装したい機能が 1 つありますが、その方法がわかりません。デバイスの向きが変わったときに、UIAlertViewCustom の各インスタンスが自動回転するかどうかを知りたいです。もちろん、下にあるビュー コントローラー (UIAlertViewCustom のインスタンスを作成して表示したビュー コントローラー) がサポートする向きを知りたいですか? ポートレートのみをサポートしている場合は、UIAlertViewCustom などを自動回転しません。

各ビュー コントローラーが、サポートされている方向プロパティを UIAlertViewCustom の各インスタンスに渡す必要はありません。UIAlertViewCustom の各インスタンスが自動回転するかどうかを判断できるようにしたいと思います。

どんな助けでも大歓迎です!

4

1 に答える 1

0

ビューコントローラークラスでこれを試してみます:

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return [[view superview] shouldAutorotateToInterfaceOrientation:interfaceOrientation];
}

それがうまくいくかどうかはわかりませんが、それが私が始めるところです。YESthis のデフォルトの実装はforを返し、UIInterfaceOrientationPortraitそれ以外はすべてであるため、これが必要ですNO

もう一つの小さなこと。Apple は使用するプレフィックス (NS、CF、CA、UI など) を予約しており、カスタム クラスではそれらを使用しないでください。

編集[self superview] を [view superview] に変更

于 2012-05-22T19:53:16.483 に答える