Ios7 如何在iOS 7中向全屏VC添加自定义导航栏,并使其与状态栏相匹配?

Ios7 如何在iOS 7中向全屏VC添加自定义导航栏,并使其与状态栏相匹配?,ios7,uinavigationbar,uistatusbar,Ios7,Uinavigationbar,Uistatusbar,在我正在开发的一个应用程序(Xcode 5,>=iOS 7自动布局)中,我推送一个模态视图控制器。我希望模态视图控制器有一个导航栏,因此我添加了一个导航栏,并添加了一个约束,使其顶部与顶部布局指南对齐,从而将其放置在状态栏的正下方 (我使用自己的导航栏是因为我想利用系统对编辑按钮和添加按钮导航栏项目的管理。) 标准导航栏有一个非常微妙的浅灰色色调 使用导航控制器,系统会以某种方式着色状态栏,或向上扩展导航栏,使状态栏的颜色与导航栏的颜色相同,其效果就像状态栏是较高导航栏的一部分 我不知道如何通过

在我正在开发的一个应用程序(Xcode 5,>=iOS 7自动布局)中,我推送一个模态视图控制器。我希望模态视图控制器有一个导航栏,因此我添加了一个导航栏,并添加了一个约束,使其顶部与顶部布局指南对齐,从而将其放置在状态栏的正下方

(我使用自己的导航栏是因为我想利用系统对编辑按钮和添加按钮导航栏项目的管理。)

标准导航栏有一个非常微妙的浅灰色色调

使用导航控制器,系统会以某种方式着色状态栏,或向上扩展导航栏,使状态栏的颜色与导航栏的颜色相同,其效果就像状态栏是较高导航栏的一部分

我不知道如何通过我添加到一个不由导航控制器管理的窗口的导航栏来获得这种效果。我模糊地记得我需要设置某种属性,告诉状态栏采用导航栏的色调,但尽管搜索了又搜索,我还是找不到它。我可以在状态栏下放置一个视图,并对其进行处理,直到它的颜色与导航栏的颜色匹配为止,但这是一个黑客行为,如果将来标准导航栏的外观发生变化,这种方法将不再正确


有人知道这个秘密吗?

您是否尝试添加NavigationBar代理

@接口MyClass:UIViewController

那么下面的方法呢

- (UIBarPosition)positionForBar:(id <UIBarPositioning>)bar {
    return UIBarPositionTopAttached;
}
-(UIBAR位置)位置FORBAR:(id)bar{
返回UIBarPositionTopAttached;
}

记住从顶部添加20个限制。

谢谢!(投票)你在文件里哪里找到的?我一直在寻找,但找不到它。顺便说一句,最好将你的酒吧固定在顶部布局指南上,而不是将它固定在从顶部向下20像素的位置。这样,如果你隐藏状态栏,导航栏会自动向上移动。我不记得我第一次在哪里发现的,但根据文档,具有此位置的栏会将背景向上延伸,允许其背景内容通过状态栏显示。