How to make a UIView that can cover the navigation bar?

我只是一个虾纸丫 提交于 2019-12-05 13:37:22

问题


I want to show the UIView in full screen, but show the status bar, other things, like the navigation bar need to cover by the UIView.

How can I do that ?


回答1:


Struggling a little to fully understand the question, but I think you're asking how you can display a UIView above another view (so that the view with the navigation controls is completely hidden by the second view)?

UIViewController has:

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

It would be wise to have your second view managed by a UIViewController, too. For the sake of example let's say your view with the navigation bar is managed by UINavigationViewController, and the view you want to display is managed by otherViewController...

[navigationViewController presentModalViewController:otherViewController animated:YES];



回答2:


I believe what he was asking was how to make a UIView cover the entire screen (sort of like custom pop up). This is precisely how I ended up here. So I will offer my solution. Call this function anywhere.

[self.navigationController.view addSubview:yourUIView];

Here the view you introduced cover over the whole screen unlike

[self.view addSubview:yourUIView]; 

Whereby, the navigation bar is uncovered.




回答3:


Add the view to your main UIWindow instance directly as a subview.




回答4:


I know the OP was looking for a way to cover the navigation bar totally, but instead of covering it, you could just temporarily hide it. Once hidden, you can add you view as a subView and change its frame or constraints so it takes up the whole screen.

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

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


来源:https://stackoverflow.com/questions/3511220/how-to-make-a-uiview-that-can-cover-the-navigation-bar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!