如何将导航栏移到 UICollectionViewCell 之外?

Posted

技术标签:

【中文标题】如何将导航栏移到 UICollectionViewCell 之外?【英文标题】:How to move the navigation bar outside the UICollectionViewCell? 【发布时间】:2016-07-05 06:29:42 【问题描述】:

我对 Swift 很陌生,我刚刚学习 UICollectionView。我将我的 UITableView 转换为 UICollectionView。 UITableView 中的导航栏在顶部正确显示,但对于 UICollectionView,我无法将其拖到单元格外以位于“集合视图”下方。

我可以将它拖到 First Responder 或 Exit 中,但它会在视图之外。当我尝试拖动表格视图的导航栏时,它不再允许我将其拖回当前位置,而只允许我在单元格内拖动。

我不知道我在这里做错了什么。我使用“显示”来呈现视图,这也是我之前用于 UITableView 的。如果我需要提供其他详细信息,请告诉我。谢谢!

【问题讨论】:

其实导航栏好像是设置在Table视图里面的。 (在TableViewTableViewCell 之间)。对于集合视图,您可以先删除单元格内的NavigationBar。然后,尝试将Navigation Item 拖到控制器上,而不是NavigationBar 我删除了NavigationBar并添加了NavigationItem,但我只能将它拖到NavigationBar可以拖到的同一个地方。 【参考方案1】:

我想你可能不得不这样做:

移除此导航栏 选择您的 CollectionViewController 转到编辑器 => 嵌入 => 导航控制器

这应该将您的集合视图控制器嵌入到导航控制器中并正确设置导航栏。

希望这会有所帮助

【讨论】:

将它嵌入到NavigationController 是可行的,但它会产生一个问题,因为我有一个prepareForSegue 函数,它的目标是CollectionView。或者有没有办法在做segue的时候跳过NavigationController? 当然可以!如果目标 VC 应该嵌入到导航控制器中,您也可以进行相同的操作。如果没有(例如:模态弹出框),您可以设置一个 push segue 这太完美了!非常感谢。我设法纠正了所有的转场,我想知道是否有办法将过渡动画更改为“向下滑动”,因为当我以模态方式呈现它时它会向上滑动,但没有选项让它向下滑动以返回根控制器。最后,为什么我在创建表格视图控制器时不需要一个导航控制器来用于这个集合视图?虽然table view controller也变成了这个样子。

以上是关于如何将导航栏移到 UICollectionViewCell 之外?的主要内容,如果未能解决你的问题,请参考以下文章

将 Snackbar 移到 bottomNavigationView 上方

IntelliJ Idea 主菜单栏从 Mac 菜单栏移出

IntelliJ Idea主菜单栏从Mac菜单栏移开

论文:将导航移到标题下方

在两个 UICollectionView 之间拖放

Win7 无法将快捷方式从任务栏移除怎么办