iOS 7自定义容器控制器 - 如何设置子控制器的视图插入?

时间:2014-09-20 00:22:55

标签: ios objective-c uiscrollview containers

我目前正在开发自定义容器控制器。问题是:如何正确设置后代子项滚动视图的内容插入? 让我们举个例子。我正在制作一个底部有半透明视图的自定义容器控制器(CCC)(如TabBar),我的容器控制器的子控制器是一个导航控制器(NC),它有一个表视图控制器(TVC)作为一个孩子。所以层次结构非常简单:

[CCC]
  ↑
[NC]
  ↑
[TVC]

现在UINavigationController和UITabBarController已经这样做了:他们设置TVC contentInset使它们在NavBar(或TabBar)下滚动。但我怎样才能实现同样的行为呢? 我希望我的TVC(或其他)与其层次结构100%无关,因此我不能手动制作TVC"设置其内容插入。

我实现的第一个解决方案是在CCC中实现 - (void)viewWillLayoutSubviews,并在层次结构中导航,查看叶子Controller checkin,如果它的视图是ScrollView。它工作正常,直到我在NC内推送另一个TableViewController(TVC2)。这样做没有调用viewWillLayoutSubviews,CCC也无法知道它的子TVC2。

UINavigationController和UITabBarController中采用的策略是什么?或者我怎样才能使它发挥作用?

1 个答案:

答案 0 :(得分:0)

我认为更改自己的视图控制器的顶部和底部布局指南应使其按预期工作。问题是,设置布局指南。作为一个秘密",布局指南实际上在内部实现为UIView对象,高度为0。从技术上讲,您可以根据需要更改这些视图的来源。请记住在每个布局通道上正确设置它们。