Swift 全屏导航推送 Segue
Posted
技术标签:
【中文标题】Swift 全屏导航推送 Segue【英文标题】:Swift Full Screen Navigation Push Segue 【发布时间】:2018-03-08 15:38:42 【问题描述】:我想实现类似于 Facebook 为特定帖子呈现 cmets 视图控制器的方式。在下图中可以看到,推送的新视图控制器显示为“全屏”(因为缺乏描述行为的更好方法)。在我看来,它更像是某种模态转场,而不是推式转场。当尝试在我自己的应用程序中重新创建它时,我无法实现整个导航栏都包含在演示文稿中。只有表示层次结构中的视图被更改。我希望第二个视图控制器完全是白色的(视图和导航栏),但两个视图控制器都应该具有默认的滑动返回行为。怎么可能呢?
【问题讨论】:
【参考方案1】:他们可能正在做的是隐藏导航栏。
如果你设置navigationController?.navigationBar.isHidden = true
(也可以在故事板的 UINavigationController 中的导航栏上设置),你可以达到相同的效果,制作一个常规的show
segue 并使用performSegue(withIdentifier: "nextScreen", sender: nil)
显示它。然后,您可以制作自己的 UI 逻辑来显示后退按钮等。
【讨论】:
这行得通,但现在父视图控制器确实也隐藏了它的导航栏。我怎样才能重新打开它,以免“闪烁”? @pmax1:你必须在你的 UI 中添加另一个 UINavigationBar,将你的 viewcontroller 设置为委托并实现UIBarPositioningDelegate
,特别是func position(for bar: UIBarPositioning) -> UIBarPosition
以在 iPhone X 的状态栏下扩展它,返回 .topAttached以上是关于Swift 全屏导航推送 Segue的主要内容,如果未能解决你的问题,请参考以下文章