【发布时间】:2012-01-11 13:40:19
【问题描述】:
我正在开发一个 iPad 应用程序,我需要创建一个 UIView,它始终位于其他视图的顶部。
A 是我需要创建UIViewController 的区域(将其视为一种侧边栏),该视图始终位于顶部。相反,B 是 UIViewController(及其视图)可以更改的内容区域:根据几个按钮操作(在 A 的视图内),可以删除当前可见内容(在本例中为控制器 B 及其视图)并显示其他控制器(C、D、E 等)及其视图。
我为我的应用程序创建了所有元素,但我无法将 A 的视图保持在顶部,同时实现用于动态更改内容区域的逻辑。作为要求,我需要 A 始终与 B 重叠。换句话说,B 的一部分(左侧部分)始终位于 A 的区域下方。B 始终扩展整个设备屏幕。
你能给我一些建议吗?
我做了两个配置,但我有问题。
首次配置
在第一个中,我为 A 创建了一个UIViewController(称为SideBarController)。我将SideBarController 视图添加到UIWindow(在应用程序委托中)。然后我为 B 创建了一个UIViewController(称为HomeViewController)并将它添加为我的应用程序的rootViewController。
这个解决方案可能是一个有效的解决方案,因为我可以通过我的应用程序委托动态更改内容区域(设置新的rootViewController),但SideBarController 始终保持在当前可见视图下。
第二次配置
在第二个中,我创建了一个UIViewController(称为MainViewController)并将其添加为我的应用程序的rootViewController。然后在MainViewController 中,我为A 创建了一个UIViewController(称为SideBarController),并将SideBarController 视图添加到MainViewController。然后内容区域已被填充,为 B 创建一个UIViewController(称为HomeViewController)并将其添加到MainViewController。
侧边栏始终位于顶部,但我很难动态更改 MainViewController 中的内容区域。如何访问内容区域并对其进行更改?
注意我知道 UIKit 上的标准组件,但由于用户规范,我需要实现这样的解决方案。
【问题讨论】:
标签: ios layout uiview uiviewcontroller sidebar