使用NIB创建复杂的VC层次结构



我有MainVC,它包含两个选项卡:FirstVC和SecondVC。

然后我点击其中一些点击,我想在下面展示所需的View/VC。

我正在与Nib合作这个项目,所以我对此有些困惑。

我应该在这里使用那个物体吗?看法怎样

我如何有MainVC与2视图,隐藏/显示基于选项卡.

在FirstVC中,我需要加载tableView。在SecondVC-simpleView

那么,有人能给我一些建议吗?如何更巧妙地实现这一点?

您可能想要使用Container View Controllers,我曾在博客中谈到过这一点。(请参见http://www.notthepainter.com/container-view-controllers/)

粘贴在此处以备将来使用:


OS5添加了许多iOS开发人员一直需要的东西,容器视图控制器。这样可以将视图控制器放置在另一个视图控制器中。这是美妙的,有无数的原因,但吸引我的是重用和抽象。

我正在开发一个应用程序,它有两个类似的窗口,它们有一个顶部(主体)和一个页脚。最重要的部分很简单,他们每个人都有自己的UIViewControllers。但当我把页脚添加到第二个页脚时,我开始想DRY,我在重复自己,这从来都不是一个好主意。所以我抽象出了一个父类,然后我把页脚代码放进去,结果我被卡住了,我希望我的页脚也是视图控制器。

我记得我参加过一次关于iOS5新功能和容器视图控制器的演讲。在谷歌上搜索了一下之后,我找到了它。

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// set up the footer contained view, this has nothing to do with table footers, this is below
// the tableview
//
FooterViewController *vc = [[FooterViewController alloc] initWithNibName:@"FooterViewController"  bundle:nil];
vc.view.frame = self.footerFPOView.frame;
vc.delegate = self;
[self addChildViewController:vc];
[vc didMoveToParentViewController:self];
[self.view addSubview: vc.view];
}

当然,有几点需要注意。首先,万岁,我正在从xib文件加载我的页脚。我在外部视图控制器的xib中放置了一个名为footerFPOView的UIVIew,这是我一直在使用的技巧。FPO代表for Position Only,这让我可以使用接口生成器进行定位。我使用协议进行通信,因此是代表。然后我调用addChildViewController添加它,然后告诉新的一个它有一个新的父级,最后添加它的视图。

这只是几行代码,但窗口应该同时响应视图控制器和旋转。

最新更新