2012-01-28 7 views
0

を持っています。ナビゲーションコントローラ内には、私が表示しようとしているビューの1つであるtransitionWithView:duration:options:animations:completionを使って2つのビュー間を反転させたViewControllerがTableViewです。フリッピングは、私はUITabBarController内にUINavigationControllerを持っているのUITableView位置の問題

問題は、テーブルビューを表示するとき、それはオフの位置です。

Tableview showing off position

と私は問題なく2つの標準ビューの間で反転をテストしている

View in correct position

フリップビューは、それだけで位置を披露テーブルビューです。また、Tableviewがより多くのデータを持っているときに、画面上に表示することができます。最下行はTabbarによって隠されます。フレームサイズが間違っているように見えますが、問題を解決する方法がわかりません。

Full test project and code can be found on GitHub

任意の提案やヘルプは大歓迎です。

答えて

3
を助けたなら、私を知ってみましょうと言う

問題の根本は、あなたがUIViewControllersを使用していることです(FlipSideとFlipMain)をそれ自身のUIViewControllerであるFlipControllerのサブビューとして表示します。 iOS 5以前では、これはnot supportedであり、必然的に問題が発生しました。ビューコントローラ階層のiOS 5 adds supportが必要ですが、適切な新しいメソッドを使用する必要があります。

ビューコントローラを入れ子にしないように再構成したり、サブコントローラをUIViewとして書き換えたり、addChildViewControllerを使用してサブコントローラを追加することができます。

私はフォークとUIViewsに変更するとレイアウトの問題を解決することを示すためにあなたの元のコードhereを変更しました。

+0

こんにちは、ガイ、ソリューションのおかげで。それで、あなたはpre ios 5と互換性のあるコードを提供していますか? 1つの問題が依然として残っており、TabBarControllerによってテーブルビューの下部が隠れています。どうすればこの問題を解決できますか? – Littlejon

+0

はい、iOS 4でうまくいくはずです。TableViewの問題は、私がUITableViewのコンストラクタで任意の(そして非常に不正確な)高さを使用したことだけです。より多くの367を参照してください[フォークでこの更新。](https://github.com/guyc/FlipViewTest/commit/6a876c5cfda4da62a5e0429142aa3425dc111b2e)のような600から何かまでの高さを変更します。 – Guy

+0

申し訳ありませんが、普遍的なアプリで、正しいサイズを把握するプログラム的な方法は何でしょうか?余分な質問を湧かせて申し訳ありません!しかし、アプリの回転をサポートすることができることに関連していると思います。乾杯。 – Littlejon

0

それは完全なコードなしに答えるために少し難しいですが、私はあなたのビューコントローラの「wantsFullScreenLayout」プロパティで遊んしようとするだろう。私はオフセットステータスバーの高さに相当する高20ピクセル、...のようですので、

はこれが;-)

+0

私はこの問題を示す完全なサンプルプロジェクトを追加しました。 "wantsFullScreenLayout"オプションをどうすればいいか分かりません。ありがとう。 – Littlejon

関連する問題