2012-01-07 11 views
0

夏らしいxcode 2つのuitabbarコントローラ1ページ。自動回転の問題

  1. 私はshouldAutorotateToInterfaceOrientationからYES返すカスタムUITabBarAutoRotateControllerを持っています。これは効果がありません。
  2. アプリを最小化してもう一度表示すると、ローテーションの問題がなくなります。
  3. ユーザーがこれを行う必要がないように画面を更新するにはどうすればよいですか?

詳細(グラフィカルに設定するので、ノーコード):

私はMainWindow.xibで2 UITabBarControllerを持っています。私は一度に一つだけを見せたいだけです。だから、私は図形的にrootViewController = tabBarController_name1をリンクしています。 tabBarController_name2もあります。

ユーザーに必要なアプリケーションの種類を選択するためのアラートMessageBoxも用意されており、リクエスト(顧客定義ごと)に基づいてタブバーコントローラが選択されます。これは現在コメントされています。

同じxibに2つのUITabBarControllersが存在する場合、Rotationにバグがあります。画面を回転しようとすると、メイン画面のボタン(電源ボタンの見た目のボタン)が向いているところが上にとどまります。 HandleOrientationChangeは表示されているアクティブなカスタムViewControllerで呼び出されません。

メイン画面のボタンを押して(アプリケーションを最小限に抑えて)、アプリケーションをクリックすると(フォアグラウンドに戻す)、回転が完璧に機能するため、バグだと思われる理由があります。

すごくお読みください。私の本当の疑問は、「メインウィンドウをリフレッシュすることができますか、またはUITabBarControllerのローテーションを(プログラムを最小化して表示する必要なしに)取得することができるのでしょうか?あなたは回避策を講じますか?

p.s.下位互換性の理由からStoryboardを使用することはできません。顧客はこのコード/プロジェクトを受け取ります。ですから、私はUITabBarItemを隠したり表示したりするのではなく、1つのグラフィカルページでこれを保持したいと思います。

編集:two-uitabbarcontrollers-and-autorotationuitabbarcontrollers-and-uinavigationcontrollersの両方が役に立ちましたが、この問題が「なぜ」発生したのかについては言及していませんでした。ここではxcodeについては「noob」と答えています:)

+0

私の考えを作ること(ナビゲーションが起こっている場所ので、顧客が簡単に見ることができる)UINavigationControllerを使用することで、上部のナビゲーションパネルを隠します。各UITabViewControllerは、別々のナビゲーションアイテムの下に存在します。私はまだチュートリアルを学んでいます。これがこの問題を解決する最善の方法でしょうか? – TamusJRoyce

答えて

0

Tab bar controller inside a navigation controller, or sharing a navigation root viewです。 TabBarViewControllerを使用しないでください。 Noobとして、なぜTabBarViewControllerが存在するのか(少なくとも償却されていないのか)はわかりません。

2つのTabBarViewControllerを同じページにドラッグすると、カスタムUIViewControllerを作成してプレーンなUITabBarを添付することで、おそらくTabBarViewControllerを実装する必要があるという警告が表示されます。

イライラ...しかし、最終的には今の進捗状況:)

+0

これは私には役に立たなかった。しかし、それは私が与えることができる最高の答えです... – TamusJRoyce