使用NIB

时间:2015-05-01 17:35:11

标签: ios objective-c iphone uiviewcontroller parent-child

我有MainVC而不是包含2个标签:FirstVC和SecondVC。

然后我点击我想要在所需的View / VC下面显示的一些水龙头。

我正在与Nib一起开展这个项目,所以我对此感到困惑。

我应该在这里使用那个对象吗?视图?怎么样?

我如何使用MainVC 2根据标签查看隐藏/显示的内容。

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

那么,有人可以给我一些如何更聪明地完成这件事的建议吗?

1 个答案:

答案 0 :(得分:0)

您可能想要使用容器视图控制器,我在一段时间后发表了博客。 (见http://www.notthepainter.com/container-view-controllers/

将来粘贴的文字:

OS5增加了许多iOS开发人员需要的东西,容器视图控制器。这允许您将视图控制器放在另一个视图控制器中。由于无数原因,这很精彩,但吸引我的是重用和抽象。

我正在开发一个有两个相似窗口的应用程序,它们有一个顶部(正文)和一个页脚。顶部很容易,他们每个人都有自己的UIViewControllers。但是当我去添加第二个页脚时,我开始考虑干,我正在重复自己,这从来都不是一个好主意。所以我抽象出了一个父类,然后我将页脚代码插入并且卡住了,我希望我的页脚也是视图控制器。

我记得我参加过有关新的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来添加它,然后告诉新的它有一个新的父节点,最后添加它的视图。

这只是几行代码,但窗口应响应两个视图控制器并响应旋转。