0

我使用 2 个 UITableViews 和一个 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

如果您在创建项目时从主/详细模板启动了应用程序。然后它将在 appDelegatedidFinishLaunching方法中自动设置导航控制器,因此在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 回答