0

iPhone アプリケーションを iPad で動作するように変換しています。この場合、ユーザー インターフェイスは Interface Builder で作成されました。ルート コントローラー (インデックス 0) のインターフェイスは、次のレイアウトのタブ コントローラーとナビゲーション コントローラーで構成されます。

  • タブ コントローラー
  • ナビコントローラー1
  • ナビコントローラー2
  • ナビコントローラー3

私はこれをバラバラに実装してきました。最初のステップとしてタブ コントローラーとナビゲーション コントローラー 1 をセットアップすると、すべてが正しく機能します。willHideViewController と willShowViewController は正しく動作します。インターフェイスが SplitView から Popover に正しく切り替わります。Navigation Controller 2 を追加すると、willHideViewController と willShowViewController は決して起動せず、シミュレーター内で iPad がどの方向にあるかに関係なく、常にポップオーバー コントローラーが表示されます。

2 つ目のナビゲーション コントローラーを追加する場合、インターフェイスを正しく機能させるために、インターフェイス ビルダー内で結び付ける必要があるものは他にありますか?

4

2 に答える 2

0

これに対する答えは非常に簡単です。分割ビューコントローラーを実装し、すべてを縦向きから横向きに正しく切り替えたい場合は、すべてのインターフェイス要素が縦向きと横向きのレイアウトのshouldAutorotateToInterfaceOrientationを実装していることを確認する必要があります。

于 2011-10-16T00:50:23.550 に答える
0

最初のナビゲーション コントローラーにはデリゲートを設定しましたが、2 番目のナビゲーション コントローラーにはデリゲートを設定していないと思います。デリゲート オブジェクトは、willHideViewController などのメソッドを受け取ります。

また、複数のナビゲーション コントローラーを使用することが適切なスタイルであるかどうかもわかりません。ビュー コントローラーは、ナビゲーション コントローラーに配置されていることを認識しており、self.navigationController を使用してこれにアクセスできます。同じナビゲーション コントローラーでビュー コントローラーをプッシュし続ける必要があります。または、タブコントローラーで何をしようとしているのかを誤解している可能性があります。

于 2011-08-27T07:03:25.680 に答える