导航栏在每个视图控制器中都有不同的颜色,如Twitter(不是setbartintcolor)

Mon*_*nte 9 uinavigationbar uinavigationcontroller ios custom-transition

如下图所示,Twitter为每个推送的视图控制器使用不同的导航栏颜色.

我几乎尝试了所有东西(setbackgroundimage,backgroundcolor,bartintcolor等),但似乎没有任何效果.我认为Twitter使用自定义过渡来模拟推送,因为,在我看来,每个视图控制器都有自己的导航栏和自己的颜色.

在此输入图像描述在此输入图像描述

tta*_*rik 2

Twitter 不会更改导航栏颜色。当您查看用户的个人资料时,它是用户封面照片的模糊版本。

正如您在过渡中看到的,整个用户个人资料视图取代了之前的视图。导航栏没有改变,只是被替换了。他们甚至可能不使用 UINavigationBar(或者至少不使用导航控制器中的 UINavigationBar)。

“栏”是一个自定义视图,显示用户的封面照片,后退/搜索/推文按钮出现在其通常的位置。当你向下滚动时,用户的封面照片会缩小、模糊并附着在屏幕顶部 - 此时,它看起来就像一个普通的导航栏。此时,用户的姓名和推文计数也会向上滚动到导航栏的中心。

这非常有趣,他们的用户个人资料的整个视图结构可能使用了很多技巧。但模仿他们的个人资料视图并不完全是一项简单的任务,他们所做的不仅仅是改变导航栏的色调。如果你只是想这样做,撤消的答案很有效。但是,您可能还需要在您的viewWillAppear方法(旧视图和新视图)中重置色调颜色。

  • @Monte,如果您在推送的视图控制器的“viewWillAppear”内部调用“setNavigationBarHidden(false,animated: true)”,它应该与导航过渡一起推送而不是淡出。 (2认同)