0

2 つの UITableView と UIViewController を使用して分割ビューを実装しました。両方を独自のデータとともに画面に表示すると、正常に機能します。私の DidSelectRowForIndexPath で、次のことを行いました。

DetailViewController *nextController = [[DetailViewController alloc] initWithStyle:UITableViewStylePlain];
NSMutableArray *objects;
objects = [[NSMutableArray alloc] initWithObjects:@"A", @"B", nil];
nextController.title = @"Filter";
[nextController SetArray:objects];
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:nextController];
[self presentModalViewController:nc animated:YES];
//used this before [self.navigationController pushViewController:nextController animated:YES];
[FilterView deselectRowAtIndexPath:indexPath animated:YES];
  1. nextController を提示するために私が行ったこととして、より良い方法を知っているかもしれません
  2. nextController は常に下から表示され、上に移動します。詳細ビューが右側から表示されるこのデフォルトのスライド アニメーションを実現するにはどうすればよいですか?
4

2 に答える 2

2

プロジェクトの作成中にマスター/詳細テンプレートからアプリを起動した場合。didFinishLaunching次に、 appDelegateメソッドでナビゲーションコントローラーが自動的に設定されるため、didSelectメソッドで使用する必要があります

`[self.navigationController pushViewController:vc animated:YES];`

それ以外の

[self presentModalViewController:nc animated:YES];

以下は、ルート ビューとの間のナビゲーションで分割ビューを使用するサンプル コードです。

于 2012-09-05T05:44:57.880 に答える
0

まず、ベースに UINavigationController があることを確認する必要があります。その後、pushViewController:nextController を実行できます。

[FilterView deselectRowAtIndexPath:indexPath animated:YES];
DetailViewController *nextController = [[DetailViewController alloc] initWithStyle:UITableViewStylePlain];
NSMutableArray *objects;
objects = [[NSMutableArray alloc] initWithObjects:@"A", @"B", nil];
nextController.title = @"Filter";
[nextController SetArray:objects];
[self.navigationController pushViewController:nextController animated:YES];
于 2012-09-05T08:18:10.097 に答える