0

iPhone アプリを iPad に変換して使用しています

-(BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
    return NO;
}

常にデュアル ペイン レイアウトを維持します。残念ながら、これは iOS5 で導入されました。iOS 5 より前のバージョンでこれをプログラムで行うという言及を見たことがありますが、サンプル コードを見つけることができませんでした。誰かポインタを持っていますか?

4

1 に答える 1

1

Apple が 5.0、5.1 で分割ビューを調整し、6.0 で回転を調整しているため、この領域は少し滑りやすい斜面です。

ひっくり返るわけではありませんが、5.0 を要求するようにアプリを移動できれば、目標を達成するための最も簡単な方法になります。

これを自分でやりたい場合は、基本的にポップオーバーをハイジャックして、自分のフレームに再実装する必要があります。と呼ばれる方法があります。

- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)newpopoverController

このメソッドでは、viewController を取得して保存できます。

次に、次を使用して縦向きに感知します。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

、詳細ビューを取得して調整する必要があります - 左側に新しいフレーム用のスペースを作ります。これは、前の方法で参照を取得したビュー コントローラーを使用して埋めます。

そのちょっとしたジャグリング行為。

本当に 4.3 互換性を維持する必要があり、その機能が必要な場合は、Matt Gemmell による MGSplitViewController と呼ばれるオープンソースの SplitView Controller を参照することをお勧めします - ここで見つけることができます: https://github.com/mattgemmell /MGSplitViewController .

彼の実装は非常に優れており、その機能だけでなく、画面上の表示位置に関連する他のいくつかのオプションも提供します。

ここから滑りやすい坂道が始まりますが、Matt は数年間コードを更新しておらず (いくつかのフォークはありますが)、アプリケーションを前進させるにつれて保守が難しくなる可能性があります。

少なくとも、やりたいことを正確に実行するコードが含まれているため、プロジェクトを支援するための優れたリファレンスになります。

申し訳ありませんが、完全なレシピを提供することはできませんが、実際には、そのライブラリを使用するか、単に参照として使用するかに関係なく、そのライブラリが役立つはずです.

幸運を祈ります

于 2012-11-30T14:06:00.657 に答える