UIViewController 作为其他视图控制器的子视图

Posted

技术标签:

【中文标题】UIViewController 作为其他视图控制器的子视图【英文标题】:UIViewController as a subview for other view controllers 【发布时间】:2011-03-06 03:40:22 【问题描述】:

我的应用程序有一个菜单按钮,它在每个视图控制器中都可用。每次用户点击菜单按钮时,都会弹出一个小菜单。菜单有多个UIButtons,每个按钮链接到另一个视图控制器。

我当前的解决方案是为菜单视图创建一个带有 nib 的视图控制器,并将其作为子视图添加到其他每个主视图控制器。

有没有更好的解决方案?

【问题讨论】:

【参考方案1】:

可能有多种方法可以做到这一点,我认为没有最好的答案。

但是,从性能角度来看,实现 UINavigationController 或 UITabBarController 之类的视图容器将是最有效的。

实现一个根视图控制器(其视图被添加为应用程序窗口的唯一直接子视图),并将菜单添加为其视图的子视图。让根视图控制器决定(或知道)要显示哪个视图,并将视图添加为其视图的子视图,在菜单下方

这样,菜单的视图不需要被移除并再次添加到当前视图层次结构中。

【讨论】:

以上是关于UIViewController 作为其他视图控制器的子视图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用单个故事板uiviewcontroller为多个子类

添加根视图控制器 OCMockObject[UIViewController] 作为子视图控制器错误

UINavigation 控制器 UIViewController 和 UItoolbar 作为子视图问题

在 UINavigationController 中运行 UIViewController 作为 UISplitViewController 的第二个视图

使用 insertSubview 显示时 UIViewController 在屏幕上被按下

在 UIView 中调用 UIViewController 视图作为子视图的问题