2012-02-10 8 views
0

ビューにボトムバーを追加して、いくつかのビュー(それぞれがナブバーで表示)をブラウズしている間、そこに保持したいと思います。私はそれがアップルのガイドラインに従うことを願っています(私はすでにナブバーだけが推奨されていることを知っています)、少なくとも、そのアプリケーションは受け入れられます。 そうするために、アプリケーションウィンドウにUIViewを追加しました。このUIViewのは、バーの項目のそれぞれのナビゲーションコントローラ(rootviewControllerとして各1)が含まれていUITabBarControllerが含まれていますiPhone:いくつかのビューの同じボトムバー

UIWindow *window=[[UIApplication sharedApplication] keyWindow]; 
MyUIViewController *mv=[[MyUIViewController alloc]init]; 
UINavigationController *navd = [[UINavigationController alloc] initWithRootViewController:mv]; 
navd.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"MyItem" image:[UIImage imageNamed:@"myImage.png"] tag:0]; 
NSMutableArray *controllers = [[NSMutableArray alloc] init]; 
[controllers addObject:navd]; 
UITabBarController *tbarController=[[UITabBarController alloc] init]; 
tbarController.viewControllers = controllers; 
tbarController.customizableViewControllers = controllers; 
UIView *vistaBarraInferior=tbarController.view; 
[window addSubview:vistaBarraInferior]; 
[window makeKeyAndVisible]; 

それは動作しますが、私の問題は、私は戻って終了行きたいときに表示されますUITabBarControllerのアイビー。私が書く場合:

[self.tabBarController.view removeFromSuperview]; 
[self.parentViewController.navigationController popViewControllerAnimated:YES]; 

タブバーは現在のビューから削除されますが、私は 'でそれを上書きしているので、私は、前のビュー(私は何も前に持っていたルートビュー)に達するcan't initWithRootViewController 'を実行します。

これを簡単にするか、またはこの方法を外す他の方法はありますか?

ありがとうございます。

答えて

1

タブバーとナビゲーションバーを組み合わせるには、タブバーをルートとして使用する必要があります。各タブ項目には、ナビゲーションコントローラを1つ追加します。タブバーは常にrootでなければならないので、逆の方法ではできません。

ボトムバーで何を達成したいのですか?タブバーまたはツールバーとして機能するかどうか。タブバーを使用すると、各タブにはナビゲーションコントローラで管理される独自のビュースタックが保存されます。一方、ツールバーは1つのビューに関連しています。

オーバレイツールバーのようなものを作成したい場合 - アニメーションの出入りがあっても常にビューの上にあるもの - 別のソリューションを選択する必要があります。

たとえば、ナビゲーションコントローラによって管理されるコンテンツの下部にはツールバーを表示し、一部のコンテナビューには独自のコントローラを作成できます。

1

ナビゲーションコントローラーの配列を持つタブバーコントローラーを使用する必要があります。りんごのサンプルコードhereを参照してください。

私はあなたのコードを調べましたが、別のレベルで正しく表示されません。例えば、あなたはinitwithviewcontrollerを呼び出していますが、uiviewを渡しています。それは正しくありません。

+0

私はそれが私が実際にやっていることだと思います。 –

0

私は他の方法でこのコードを書き換える場合:

 UITabBarController *tabBar=[[UITabBarController alloc]init]; 
     [email protected]"MyTitle"; 
     NSMutableArray *items=[[NSMutableArray alloc]init]; 
     MyUIViewController *ld = [[MyUIViewController alloc] init]; 
     [tabBar addChildViewController:ld];    
     UITabBarItem *tabItem=[[UITabBarItem alloc]initWithTitle:@"Item1" image:[UIImage imageNamed:@"myImage.png"] tag:0]; 
     [items addObject:tabItem]; 
     [tabItem release]; 
     [tabBar setToolbarItems:items]; 
     [self.navigationController pushViewController:tabBar animated:YES]; 

結果は下部のタブバーが空であることです。タブバーの項目を表示するために何かを書くのを忘れてしまったのですか?

2番目のアイテムを追加すると、そのタイトルのみが表示されますが、そのイメージも最初のアイテムに関連するものも表示されません。

関連する問題