2011-08-01 5 views
0

私のアプリケーションプロジェクトは、それぞれがタブバーを介してリンクされた5つのページビューを基本とし、それらの5ページにはそれぞれページ上にタブバーがあり、うまく動作します。Xcode 4では、ボタンでビューを切り替えるときに下のタブバーを保持するにはどうすればいいですか?

5つのタブ(タブ)はインデックスのように動作し、ボタンのリンクはセカンダリページに移動します。ボタンをセカンダリページに移動するようにプログラミングしたところ、リンクは正常に機能しましたが、そのページの下部にあるタブバーはもう存在しません。各セカンダリページにはリンク先のインデックスページに戻るリターンボタンがありますが、リンク先のタブバーも消えています。

実験として、ボタンをクリックした後に不足しているタブバーの問題としてセカンダリページを除外するために、タブの1つをリンクしてセカンダリページに直接移動し、その実験は完全に機能しました。その後

-(IBAction)switchView:(id)sender { 
MyNewPageViewController *newPagelink = [[MyNewPageViewController alloc] initWithNibName:nil bundle:nil]; 
[self presentModalViewController:newPageLink animated:YES]; 

[newPagelink release];} 

:クラスのページtabIndex.hで :クラスのページtabIndex.mで

//I declared this method after the last "}"  
    -(IBAction)switchView:(id)sender; 

ここ

は私が外出ボタンをリンクするために使用するコードです私は名前を逆にして、それぞれの.h & .mファイルでMyNewPageViewControllerのバックボタンを同じように行い、return "switchBack"のためにIBActionを呼び出しました。

私は、誰かがこの問題の修正プログラムで私を助けることができる願っています

...

多くのおかげで、

--Robあなたが一緒にナビゲーションコントローラを使用したほうが良いかもしれないようですね

答えて

0

タブバーコントローラを使用します。ナビゲータコントローラをタブバーコントローラとともに使用すると、タブバーを常に可視に保ちながら、各タブに対して階層的に編成された複数のビューを表示できます。

コントローラのセカンダリページに移動する場合は、-pushViewController:animated:を使用して新しいコントローラをナビゲーションスタックにプッシュします。最初のコントローラに戻るには、単に-popViewControllerAnimated:としてください。複数のビューを持つことができる各タブのナビゲーションビューコントローラがあり、そのプライマリビューのビューコントローラは、ナビゲーションコントローラのルートビューコントローラです。

詳細な説明using a nav controller with a tab bar controllerについては、ビューコントローラプログラミングガイドを参照してください。

0

5つのビューコントローラが2つあり、ナビゲーションコントローラを使用する必要があるビューコントローラは2つあります。これらのVCについては、タブバーを見たいのですが、追加のビューをプッシュしてポップアップする必要があります。それだけで十分です。ここでは、あなたのタブの車のコントローラを設定する方法をである - それは、最初の2つのビューコントローラはあなたに追加のビューをプッシュする必要があるものであることを前提としています

MyVC1 *vc1= [[MyVC1 alloc] initWithNibName:@"MyVC1View" bundle:nil]; 
MyVC2 *vc2= [[MyVC1 alloc] initWithNibName:@"MyVC2View" bundle:nil]; 
MyVC3 *vc3= [[MyVC1 alloc] initWithNibName:@"MyVC3View" bundle:nil]; 
MyVC4 *vc4= [[MyVC1 alloc] initWithNibName:@"MyVC4View" bundle:nil]; 
MyVC5 *vc5= [[MyVC1 alloc] initWithNibName:@"MyVC5View" bundle:nil]; 

// these are the VCs you need to push/pop from 
UINavigationController *firstNavController = [[UINavigationController alloc] initWithRootViewController:vc1]; 
UINavigationController *secondNavController = [[UINavigationController alloc] initWithRootViewController:vc2]; 

UITabBarController *tabBar = [[UITabBarController alloc] initWithNibName:nil bundle:nil]; 
tabBar.viewControllers = [NSArray arrayWithObjects:firstNavController, secondNavController, vc3, vc4, vc5, nil];

今すぐVC1とVC2とあなたが上にビューをプッシュすることができますナビゲーションスタックを通常通りに使用します。たとえば、 [self.navigationController pushViewController:vc1B animated:YES];