0

我有这个代码:

navtablecontroller = [[UITableViewController alloc] init];
navtablecontroller.tableView.delegate = self;
navtablecontroller.tableView.dataSource = self;

CGRect frame = self.view.frame;
frame.origin.y = frame.origin.y + 83.0;
frame.size.height = 200.0;
navtablecontroller.view.frame = frame;

navtablecontroller.title = @"mynameasdasd";
[self addChildViewController:navtablecontroller];
[self.view addSubview:navtablecontroller.view];
[navtablecontroller didMoveToParentViewController:self];

这完美地在屏幕上创建了一个 UITableView,就像提到的框架一样。

现在我尝试添加一个 UINavigationController 并将这个 UITableViewController 作为它的 RootViewController。

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:navtablecontroller];
nav.navigationBar.translucent = NO;

然后将其添加为我的 childViewController 我这样做:

[self addChildViewController:nav];
[self.view addSubview:nav.view];
[nav didMoveToParentViewController:self];

不幸的是,不是在代码中提到的小框架中创建 UINavigationController,而是整个屏幕被 UINavigationController 替换。

我只需要那个小框架将 UINavigationController 与 UITableView 作为它的 rootviewcontroller 而不是整个屏幕。有什么建议吗?

4

1 回答 1

0

得到了解决方案。必须将 UINavigationController 的框架设置为 UITableViewController 的框架。

nav.view.frame = frame;

其中 frame 是 UITableViewController 的框架。

于 2014-01-10T21:59:37.590 回答