我有这段代码:
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,而不是整个屏幕。任何sugestions?
答案 0 :(得分:0)
得到了解决方案。必须将UINavigationController的框架设置为UITableViewController的框架。
nav.view.frame = frame;
其中frame是UITableViewController的框架。