如何制作一个可以覆盖导航栏的UIView?

时间:2010-08-18 10:44:09

标签: iphone ios objective-c iphone-sdk-3.0

我想全屏显示UIView,但要显示状态栏,其他内容,例如导航栏需要UIView覆盖。

我该怎么做?

4 个答案:

答案 0 :(得分:61)

我相信他所问的是如何让UIView覆盖整个屏幕(有点像自定义弹出窗口)。这正是我在这里结束的方式。所以我会提供我的解决方案。在任何地方调用此函数。

[self.navigationController.view addSubview:yourUIView];

此处您介绍的视图覆盖整个屏幕,与

不同
[self.view addSubview:yourUIView]; 

因此,导航栏被揭开。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

UIViewController有:

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

将第二个视图管理为UIViewController也是明智之举。例如,假设导航栏的视图由UINavigationViewController管理,您要显示的视图由otherViewController管理...

[navigationViewController presentModalViewController:otherViewController animated:YES];

答案 3 :(得分:0)

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

- (void)showViewOverNavBar:(UIView *)view {

    [self.navigationController setNavigationBarHidden:YES];
    [self.view addSubview:view];
}