2

これは愚かな質問のように見えるかもしれませんが、iPhoneアプリケーションでさまざまなタイプのコントローラを処理することはまだあまりありません。ここに設定があります:タブバーアプリケーションにナビゲーションコントローラを追加する(プログラム的に)

私は4つのタブを持つタブバーアプリケーションを持っています。各タブはコントロールをそれぞれのViewControllerに渡します。その中のいくつかは.XIBファイルで初期化され、一部は純粋にプログラムで行われます。プログラムの1つはDirectionsViewControllerです。本質的にはUITableViewControllerです。テーブルからセルを選択するには、DetailedDirectionsViewControllerを(モーダルに)提示する必要があります。これには、表示されているビューコントローラへの何らかのバックリファレンスが必要です。これを行う最も簡単な方法は、DirectionsDetailedDirections VCにナビゲーションコントローラを追加することです.XBファイルなしでこれを行う方法はわかりません。

また、私はDetailedDirectionsに制御を渡す方法はDirections次のように変更することです:私はpresentModalViewControllerが古い方法の一種であり、よりよいがあることを言って、私の教授の1を思い出すように見える

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    DetailedDirectionsViewController *vc = [[DetailedDirectionsViewController alloc] initWithStyle:UITableViewStyleGrouped]; 
    [self.tabBarController presentModalViewController:vc animated:YES]; 
} 

を選択肢...私はちょうど今それらを覚えていない。

+0

http://bit.ly/H4kHEZを見て、そのドキュメントのサンプルコードを見ることができます。 –

答えて

1

あなたがしたいことは、タブバーのタブにUINavigationControllerを管理させ、そのナビゲーションコントローラのrootViewControllerをDirectionsViewControllerに設定することが最善の方法です。

は、その後、あなたの方向のビューコントローラの didSelectRowAtIndexPath:方法には、次の操作を行うことができます

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    DetailedDirectionsViewController *vc = [[DetailedDirectionsViewController alloc] initWithStyle:UITableViewStyleGrouped]; 
    [self.navigationController pushViewController:vc animated:YES]; 
} 

そして、あなたはそれがしたいようにそれが機能します。 UINavigationコントローラは詳細な方向表示コントローラに戻るボタンを配置します。

+0

ありがとう、私はそれに愚かだった。 – Argent

0

私がよく理解しているのは、tableview:didSelectRow ..:あなたがモーダルで表示したいビューコントローラで初期化するナビゲーションコントローラを作成する必要があるだけです。提示する前にUIBarButtonItemを作成してナビゲーションに追加してくださいナビゲーション・コントローラのセレクタとしてのbarは、dismissコマンドで新しいメソッドを作成します。

関連する問題