问题
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