如何使UIView,可以覆盖导航栏?

我想全屏显示UIView ,但显示状态栏,其他的东西,如导航栏需要由UIView覆盖。

我怎样才能做到这一点 ?

为了完全理解这个问题而苦苦挣扎,但是我想你是问如何在另一个视图上显示一个UIView (这样导航控件的视图就完全被第二个视图隐藏了)?

UIViewController有:

 - (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated 

让你的第二个视图也由UIViewControllerpipe理是明智的。 为了举例,让我们说您的视图与导航栏由UINavigationViewControllerpipe理,并且您要显示的视图由otherViewControllerpipe理…

 [navigationViewController presentModalViewController:otherViewController animated:YES]; 

我相信他问的是如何使UIView覆盖整个屏幕(有点像自定义popup)。 这正是我如何在这里结束的。 所以我会提供我的解决scheme。 在任何地方调用此function

 [self.navigationController.view addSubview:yourUIView]; 

这里你介绍的视图覆盖整个屏幕不同

 [self.view addSubview:yourUIView]; 

由此,导航栏被揭露。

将视图直接添加到主UIWindow实例中作为子视图。

我知道OP正在寻找一种完全覆盖导航栏的方法,但不是覆盖导航栏,而是暂时隐藏它。 一旦隐藏,您可以将视图添加为子视图,并更改其框架或约束,以使其占据整个屏幕。

 - (void)showViewOverNavBar:(UIView *)view { [self.navigationController setNavigationBarHidden:YES]; [self.view addSubview:view]; }