に私はiPadのアプリケーションを開発していると私は他のビューに関してで一番上に常にUIView
を作成する必要があります。UIViewのサイドバーは常にトップ
Aは私がUIViewController
たビューを作成する必要があるエリアは、(サイドバーの一種としてそれを考慮して)一番上に常に残っています。 Bはその代わりに、UIViewController
(そのビューを含む)が変更可能なコンテンツエリアです:いくつかのボタンアクション(Aのビュー内)に応じて、現在表示されているコンテンツ(この場合はコントローラBとビュー)を削除し、他のコントローラ(C、D、Eなど)が表示されます。
私は自分のアプリケーションのためのすべての要素を作成したが、私は上にAの見解を維持し、同時に、dinamcallyコンテンツ領域を変更するために使用されるロジックを実装するための問題を抱えています。要件として私はAが常にBと重なる必要があります。言い換えれば、Bの一部(左側の部分)は常にAの領域の下にあります。Bは常にデバイス画面全体を拡張します。
私にいくつかアドバイスをいただけますか?
私は2つのコンフィギュレーションを作ったが、私は彼らとの問題を抱えています。
第1の構成
最初のもので、私はA(SideBarController
と呼ばれる)のためUIViewController
を作成しました。私はビューをUIWindow
に追加しました(アプリケーションデリゲート内)。次に、BのUIViewController
(HomeViewController
)を作成し、私のアプリケーションにrootViewController
として追加しました。
私のアプリケーションデリゲートを通じてコンテンツ領域を変更(新しくrootViewController
に設定)することができますが、SideBarController
は常に現在のビジュアルビューの下にあるため、この解決策は有効です。二一
第2の構成
、私は(MainViewController
と呼ばれる)UIViewController
を作成し、私は自分のアプリケーションのためのrootViewController
としてこれを追加しました。次いでMainViewController
内Iは、A(SideBarController
呼ばれる)のためにUIViewController
を作成し、IはMainViewController
にSideBarController
ビューを追加しました。その後、内容領域が塗りつぶされてB(HomeViewController
と呼ばれる)のUIViewController
が作成され、MainViewController
に追加されます。
サイドバーは常に上に残りますが、コンテンツ領域を動的に変更するのは難しいです(MainViewController
)。コンテンツエリアにアクセスして変更することはどのように可能ですか?
注私はUIKitの標準コンポーネントについて認識していますが、ユーザー仕様のためにこのようなソリューションを実装する必要があります。
は、ご返信いただきありがとうございます。第二の解決法のアドバイスをお願いしますか?サイドバーを別の 'UIWindow'の中に置くことはどうでしょうか?私は最初のものが複雑かもしれないと思う。ありがとうございました。 –
ありがとうございます。私は従う方法について知らない。おそらく 'UIPopoverController'が正しいかもしれません。私の意見では、このコントローラの外観をカスタマイズすることができない可能性があります。たとえば、iOS 4では、境界をカスタマイズすることはできません。 iOS 5のカスタマイズが変更されたかどうかはわかりません。過去に使用したソリューションについて共有するコードはありますか?ありがとうございました。 –
あなたは正しいです。私が話していた部分は、iOS 5( 'popoverBackgroundViewClass')に追加されました。それはあなたにトップレベルに添付されたウィンドウまたはビューを残します。私は '[[view window] rootViewController]ビュー]に' UIView'を追加して、それがうまくいくかどうか確認します。そうでない場合は、 '[view window]'に直接追加してください。 –