如何将子视图添加到 UIViewController 将 UINavigationBar 推到后面

Posted

技术标签:

【中文标题】如何将子视图添加到 UIViewController 将 UINavigationBar 推到后面【英文标题】:How to add subview to UIViewController pushing UINavigationBar behind 【发布时间】:2012-10-11 09:30:50 【问题描述】:

我想要的如下:

基本上我有一个带有导航栏的视图控制器。左侧 UINavigationBarItem 有一个菜单按钮。单击菜单项的菜单按钮列表将从顶部开始动画。这是使用“addSubview”方法实现的。但菜单列表添加为导航栏下方的子视图。我想在菜单列表视图后面添加菜单列表视图推送导航栏。我不想隐藏导航栏。

谢谢

【问题讨论】:

"我想添加菜单列表视图,将导航栏推到菜单列表视图后面。"你不来这里吗? Gill,当我将它添加为子视图时,它会在顶部显示导航栏,然后是菜单列表视图。也就是说,关于窗口菜单列表视图框架的 y 是状态栏高度 + 导航栏高度。如何将此 y 位置设置为仅状态栏高度? 什么是菜单列表??它是 UIView 还是弹出窗口? 这似乎有冲突,因为“我不想隐藏导航栏”和“我如何将这个 y 位置设置为仅状态栏高度”不同(44px)。 你可以使用 [self.navigationController setNavigationBarHidden:YES animated:animated] 隐藏你的导航栏; 【参考方案1】:

try:**[self.navigationController.view** addSubview:xxxView],这适用于我的应用程序。不要用[self.view addSubview:xxxView],那不能把导航栏放在后面。

【讨论】:

【参考方案2】:

你试过吗..? 添加子视图

后将您的子视图置于最前面
//after adding your menu view

 [self.view bringSubViewToFront:menuItemsView];
 [self.view sendSubviewToBack:self.navigationController.navigationBar ];

【讨论】:

【参考方案3】:

我不确定,但是........这可能是不可能的,因为如果您想在UINavigationBar 后面显示您的菜单列表那么你需要隐藏你的UINavigationBar而不隐藏UINavigationBar 菜单列表将始终显示在UINavigationBar下方。

【讨论】:

以上是关于如何将子视图添加到 UIViewController 将 UINavigationBar 推到后面的主要内容,如果未能解决你的问题,请参考以下文章

如何将子视图添加到自定义 UICollectionViewCell

如何使用自动布局(约束)将子视图添加到 UIPageViewController?

如何将子视图添加到 UITableViewCell

如何将子视图添加到 TableViewCell?

VB.NET 如何将子节点添加到树视图中的特定节点

如何将子视图添加到另一个视图控制器?