0

我正在尝试创建一个容器视图控制器(见屏幕截图),我想在右侧添加一个导航控制器,但我遇到了一些问题。你能帮助我吗?

当我在我的父控制器 (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];

我错过了什么吗?
你知道如何在我自己定制的容器视图控制器中添加导航控制器吗?
提前致谢!

截图:http: //img803.imageshack.us/img803/2464/screennjz.png

4

1 回答 1

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]];
于 2013-02-20T17:52:54.793 回答