以模态方式呈现视图控制器时,导航栏与黑色而不是白色混合

Posted

技术标签:

【中文标题】以模态方式呈现视图控制器时,导航栏与黑色而不是白色混合【英文标题】:Navigation bar blends with black instead of white when presenting a view controller modally 【发布时间】:2014-09-30 22:32:49 【问题描述】:

我正在尝试以模态方式呈现视图控制器(嵌入在导航控制器中)。问题是当视图呈现时,它会将导航栏与黑色而不是白色混合。

我正在从情节提要创建我的视图控制器并使用-[UIViewController presentViewController:animated:completion:] 显示它。

我怎样才能得到正确的混合,如下所示?

不正确的行为:

正确行为:

【问题讨论】:

【参考方案1】:

问题在于 Extend Edges 设置禁用了 Under Top Bars。启用该设置后,一切正常。

注意要恢复默认设置,您应该启用Under Top BarsUnder Bottom Bars。如果您注意到视图控制器底部的工具栏具有相同的行为,则后者特别有用。

您可以通过读取视图控制器上的edgesForExtendedLayout 值以编程方式查看该值设置为什么。如果将其设置为UIRectEdgeNone,则会出现不良行为。

有关扩展边缘如何工作的更多信息,请参阅this answer。

【讨论】:

以上是关于以模态方式呈现视图控制器时,导航栏与黑色而不是白色混合的主要内容,如果未能解决你的问题,请参考以下文章

嵌入到导航控制器中的动画根视图控制器以模态方式呈现

在导航堆栈中以模态方式呈现视图控制器

如何在保持导航栏存在的同时以模态方式呈现视图控制器。 (对于设置视图控制器)

当每个新的视图控制器被推送时,调整导航控制器的大小以模态 UIModalPresentationFormSheet 呈现

从 UINavigationVController 导航以模态方式呈现到根 UINavigationVController - swift

视图控制器以模态方式呈现/关闭时的通知?