我正在尝试创建一个容器视图控制器(见截图),我想在右边添加一个导航控制器,但是我遇到了一些问题。你能救我吗?
当我在父控制器(viewDidLoad)中添加此代码时,我看到具有其他位置/大小的视图,我猜是因为我无法访问导航控制器容器视图。
尝试:
[self addChildViewController:_detailNavigationController];
_detailNavigationController.view.frame = CGRectMake(256, 49, 768, 651);
[self.view addSubview:_detailNavigationController.view];
还有这个,但只适用于第一个视图,显然。
[self addChildViewController:_detailNavigationController];
_detailNavigationController.topViewController.view.frame = CGRectMake(256, 49, 768, 651);
[self.view addSubview:_detailNavigationController..topViewController.view];
尝试获取导航控制器容器视图,但无法正常工作,我在屏幕上看不到任何内容并使用调试器我意识到视图为零。除此之外,苹果可能不喜欢这样。
[self addChildViewController:_detailNavigationController];
UIView *view = [_detailNavigationController valueForKey:@"_containerView"];
view.frame = CGRectMake(256, 49, 768, 651);
[self.view addSubview:view];
我错过了什么吗? 您知道如何在我自己的自定义容器视图控制器中添加导航控制器吗? 提前谢谢!
答案 0 :(得分:1)
我有自定义类MasterViewController和DetailedViewController是UITableViewController的子类。 NavigationController是UINavigationController的子类,SplitViewController是UISplitViewController的子类。
你可以看到它有效,但是当我从导航控制器弹出一个视图时我遇到了问题。如果你发现如何解决这个问题,请告诉我。
MasterViewController *master = [[MasterViewController alloc] init];
NavigationController *masterNav = [[NavigationController alloc] initWithRootViewController:master];
DetailedViewController *detailed = [[DetailedViewController alloc] init];
NavigationController *detailedNav = [[NavigationController alloc] initWithRootViewController:detailed];
myVC = [[SplitViewController alloc] init];
[myVC setViewControllers:[NSArray arrayWithObjects:masterNav, detailedNav, nil]];