2009-03-01 6 views
3

私は、セルを選択できる「TableView」を表示し、そのセルの「詳細表示」に移動するナビゲーションベースのアプリケーションがあります。私はこのビューに3つのサブビューの中から選択できるTabBarを持っています。私はこのためにいくつかのソリューションをオンラインで見つけましたが、どれも非常に役に立ちません。具体的なチュートリアルはありますか、ソースコードはどのように実行できるかを示していますか?ありがとうTabBarを使用したナビゲーションベースのアプリケーション

答えて

6

基本的には、タブビューコントローラをナビゲーションコントローラのビューコントローラスタックにプッシュするだけです。

新しい「ナビゲーションベースのアプリケーション」テンプレートから始めます。テストを25にこれを変更

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
//Navigation logic may go here. Create and push another view controller. 
UIViewController *viewOneViewController = [[UIViewController alloc] init]; 
viewOneViewController.title = @"One"; 
viewOneViewController.view.backgroundColor = [UIColor redColor]; 

UIViewController *viewTwoViewController = [[UIViewController alloc] init]; 
viewTwoViewController.title = @"Two"; 
viewTwoViewController.view.backgroundColor = [UIColor orangeColor]; 

UIViewController *viewThreeViewController = [[UIViewController alloc] init]; 
viewThreeViewController.title = @"Three"; 
viewThreeViewController.view.backgroundColor = [UIColor greenColor]; 

UITabBarController *anotherViewController = [[UITabBarController alloc] init]; 
anotherViewController.viewControllers = [NSArray arrayWithObjects:viewOneViewController, viewTwoViewController, viewThreeViewController, nil]; 
[self.navigationController pushViewController:anotherViewController animated:YES]; 
[anotherViewController release]; 

}

::私はRootViewController.mで次のメソッドを追加私がビルドして実行するとき

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return 25; 
} 

を今、私はあなたが探しているものを参照してくださいよ基本的な方法で。あなたがこの作業をした後にしたいことは、各ビューのコードを保持するために作成したカスタムサブクラスにUIViewControllerを変更することです。 (Interface Builderも使用している場合は、initをinitWithNibNamed :)に変更してください。

これはあなたのやり方を少し助けてくれることを願っています。

+0

また、あなたはそのviewControllersを割り当てている、UITabBarControllerのカスタムサブクラスを作成する必要があり、その後、didSelectRow方法にすべてをかけるよりきれいなのthats。それの次に、あなたはいくつかのリリースのことを忘れてしまった。しかし、まだ+ –

+0

私たちはxibとタブをwan't場合.. ?? –

2

これを行うと、Appleがアプリケーションを却下する可能性があることに注意してください。図4に示すように、「タブバーとナビゲーションコントローラを結合」

から

はそれがこれを行うには、タブバーとナビゲーションコントローラを組み合わせることが非常に一般的ですが、あなたは単にタブバーコントローラにナビゲーションコントローラを追加(ただし、ナビゲーションコントローラーにはタブバーコントローラーを絶対に追加しないでください)。

は、だから、ヒューマンインターフェイスガイドラインに反対する可能性がありますので、あなたが拒否されます可能性があります。

1

私はこれと同じことをやろうとしています。アプリケーション "Tweetie"は同様のことをしています。彼らは、アカウントのTableViewを持っているし、アカウントを選択し、TabBarが表示されます。

とにかく、まっすぐAppleのドキュメントから:

pushViewController:アニメーション: は、受信機のスタックにビューコントローラをプッシュし、表示を更新します。

  • (ボイド)pushViewController:(のUIViewController *)のViewControllerアニメーション:(BOOL)は

パラメータ ViewControllerをスタックにプッシュされたビューコントローラアニメーション。 タブバーコントローラのインスタンスにすることはできません。ビューコントローラがすでにスタック上にある場合、このメソッドは何も実行しません。

アニメーション この値をYESに設定すると、トランジションがアニメーション化されます。ビューが表示される前にナビゲーションコントローラを設定する場合は、NOを渡します。

私たちはTabBarControllerではなくTabBarを使っているだけでしょうか?

-jp

関連する問題