提问人:Chris 提问时间:3/8/2016 最后编辑:Chris 更新时间:3/9/2016 访问量:595
如何在添加到keyWindow的视图上方显示模态?
How to Present a Modal above a View that was added to keyWindow?
问:
我添加了一个视图,因为我们希望它与导航栏重叠。[[UIApplication sharedApplication] keyWindow]
现在,我们想点击视图上的按钮并以模式打开窗口,最好是使用 .有没有办法使这个模态视图出现在keyWindow视图的上方(在z轴上)?presentViewController
我的回答
我最终将我的第一个自定义添加到 .这允许 重叠导航栏和标签栏。UIViewController
self.tabBarController
UIViewController
然后我用来呈现模态,它在 z 轴上高于其他一切。[self.navigationController presentViewController:animated:completion]
下面是将 添加到UIViewController
self.tabBarController
MyCustomViewController * overlayView = [[MyCustomViewController alloc]
initWithNibName:@"MyCustom"
bundle:nil];
UIViewController *parentViewController = self.tabBarController;
[modalView willMoveToParentViewController:parentViewController];
// set the frame for the overlayView
overlayView.view.frame = parentViewController.view.frame;
[parentViewController.view addSubview: overlayView.view];
[parentViewController.view needsUpdateConstraints];
[parentViewController.view layoutIfNeeded];
// Finish adding the overlayView as a Child View Controller
[parentViewController addChildViewController: overlayView];
[overlayView didMoveToParentViewController:parentViewController];
答:
0赞
Rafał Sroka
3/8/2016
#1
您应该重新考虑添加叠加视图的方式。
如果希望视图与导航栏重叠,只需将此视图添加为导航栏的顶部子视图即可。或者,您可以将其添加为导航控制器视图的顶部子视图。
评论
0赞
Chris
3/9/2016
对不起,但你能对此进行一些扩展吗?当我查找诸如“导航控制器视图”或“顶部子视图”之类的术语时,我没有找到任何信息。我发现的关于将 a 放在上面的几乎所有东西都说要使用 keyWindow。stackoverflow.com/questions/21850436/......UIViewController
Navigation Bar
评论