1

これが私の問題です:

ナビゲーション ベースのアプリケーション内でタブ バーを使用する方法について多くのことを読みましたが、まだ理解できません。タブバーコントローラーの使用と使用回避の両方を試みましたが、解決策が見つかりません。

すでにナビゲーション ベースのアプリが動作しています。いくつかの nib ファイル (ビュー) があり、それぞれに独自のビュー コントローラーがあり、プログラムでナビゲーション コントローラー スタックにプッシュします。このビューの 1 つに、他のいくつかのビューを切り替えることができるタブ バーが必要です。タブバーがどのように機能するかを理解しています。タブバーコントローラーを使用する必要があると思います。これにより、各タブバーアイテムに関連付けられたビューコントローラーを定義し、それらすべてを管理できるようになります。しかし、私はそれを行う方法がわかりません。

「tabBarViewController」でタブ バー コントローラーを宣言し、「tabBarView」でタブ バー コントローラーを描画し、それらを IB にリンクすると、エラーが発生します (これは、実際にタブ バー コントローラーのビュー? "[window addSubView:[tabbarcontroller view]]? と同等のものが必要ですか?" この場合、ビュー内でタブ バー コントローラーのトップ ビュー コントローラーのビューを「見る」方法を知る必要があるだけです。コントローラーはすでにプッシュしています。

私が読んだように、タブバーコントローラーを使用しないようにする場合は、この問題の最良の解決策です.タブバーアイテム、それらの間のスイッチなどを管理するにはどうすればよいですか?

よろしくお願いします。

4

3 に答える 3

0

tabBar コントローラーと 5 つの navControllers を使用してアプリを作成しました。必要なことは、tabBar コントローラーの最初の要素内にペン先とナビゲーション コントローラーをロードすることだけです。ビューがその中にある場合でもタブバーを非表示にして、必要なビューに表示することができます。

于 2011-08-15T14:52:43.693 に答える
0

タブ バー コントローラーをナビゲーション コントローラー スタックにプッシュすることはできません。それを行うためのサポートされている方法はありません。

代わりに考慮したいのは、UITabBar の独自のインスタンスを作成してから、UITabBarDelegate に準拠するデリゲートを使用することです。tabBar:didSelectItem:そうすれば、ユーザーがタブ バーの項目を選択するたびに、デリゲートがメッセージを受け取ります。itemsただし、IB を使用せずに、バーの NSArray を自分で管理する必要があります。

それが理解できたら、後は通常の UIViewController を他のナビゲーション スタックにプッシュし、そのコントローラーでタブ バーとデリゲートを管理するだけです。

于 2009-10-05T18:10:40.727 に答える
-1

次のように、少しのコードでこれを行うことができます。

FooViewController *foo = [[FooViewController alloc] init];
BarViewController *bar = [[BarViewController alloc] init];

UITabBarController *tabby = [[UITabBarController alloc] init];
[tabby setViewControllers:[NSArray arrayWithObjects:foo, bar, nil] animated:NO];
[self.navigationController pushViewController:tabby animated:YES];
[foo release];
[bar release];
[tabby release];

おそらくIBでも同様に実行できます.ペン先からタブバーコントローラーをロードするだけです.

これを実演するサンプル プロジェクトを作成しました。http://s3.thismoment.com/navtab.zipからダウンロードできます。

于 2009-10-05T21:03:50.720 に答える