【发布时间】:2014-09-20 00:22:55
【问题描述】:
我目前正在开发自定义容器控制器。问题是:我怎样才能正确地为我的后代孩子的滚动视图设置内容插图? 让我们举个例子。我正在制作一个底部有半透明视图的自定义容器控制器(CCC)(如 TabBar),我的容器控制器的子控制器是一个导航控制器(NC),它有一个表视图控制器(TVC)作为孩子。所以层次结构非常简单:
[CCC]
↑
[NC]
↑
[TVC]
现在 UINavigationController 和 UITabBarController 已经这样做了:它们设置 TVC contentInset 以使它们在 NavBar(或 TabBar)下滚动。但是我怎样才能达到同样的行为呢? 我希望我的 TVC(或其他)对其层次结构 100% 不可知,因此我不能让 TVC“手动”设置其内容插图。
我实施的第一个解决方案是将 - (void)viewWillLayoutSubviews 实施到 CCC 中,并在层次结构中导航以查找叶控制器签入(如果其视图是 ScrollView)。它工作正常,直到我在 NC 中推送另一个 TableViewController (TVC2)。这样做不会调用 viewWillLayoutSubviews,并且 CCC 无法知道它的子 TVC2。
UINavigationController 和 UITabBarController 内部采用的策略是什么?或者我怎样才能让它发挥作用?
【问题讨论】:
标签: ios objective-c uiscrollview containers