3

UINavigationControllerを使用して、アプリでviewControllerのプッシュとポップを処理しています。同じUINavigationControllerによって管理されるタブバー(UITabbarControllerを使用しない)があるセクションがあります。(addSubviewを使用して)ナビゲーションコントローラービューにUITabBarを追加するだけです。

問題:タブバーがビューの一部であり、ナビゲーションスタックではないため、テーブルビューがナビゲーションスタックにプッシュされているUIViewControllerがいくつかあります。これは、ナビゲーションコントローラーがタブバーを認識していないため、テーブルビューが下部で切り取られているためです。ビューにあり、ナビゲーションスタックにないためです。ナビゲーションコントローラーがないと、ViewControllersビューのサイズを変更するだけで問題なく動作しますが、これを実行しようとすると、NavigationCOntrollerがフレームを無視して独自のフレームを設定するため、テーブルビューが切り取られます。私はいくつかの余分なセルを追加してそれらを非表示にすることであり、それは一種のハッカー的ですが、その種のハッカー的であるという1つの解決策を見つけました、誰かがこれを別の非ハッカー的方法で行う方法の提案がありますか?

ありがとう

4

2 に答える 2

1

了解しました。問題を解決しました。以前、viewControllerの代わりにUITableViewのサイズを変更しようとしましたが、これは機能しませんでした。ただし、独自のtableViewを管理するUITableViewControllerを使用していて、フレームを変更できなかったため、これが機能しないことに気付きました(間違った場所で変更していた可能性があり、viewDidLoadで試してみました。 [super viewDidload]を呼び出した後、それはうまくいきました。そこで、クラスをUIViewControllerに変更し、そこでテーブルビューを管理しました。これで、返信のおかげでうまく機能するようになりました。

于 2009-08-19T21:00:48.650 に答える
0

サブビューのUITableViewを使用してルートビューをUIViewにしてみてください。次に、UITabBarをUIViewインスタンスに追加します。これで、UITableViewはUINavigationControllerについて認識しなくなります。

于 2009-08-19T19:45:26.087 に答える