Ios 如何在添加到keyWindow的视图上方显示模式?
我在Ios 如何在添加到keyWindow的视图上方显示模式?,ios,objective-c,modalviewcontroller,keywindow,Ios,Objective C,Modalviewcontroller,Keywindow,我在[[UIApplication sharedApplication]keyWindow]中添加了一个视图,因为我们希望它与导航栏重叠 现在,我们想点击视图上的一个按钮并以模式打开一个窗口,理想情况下使用presentViewController。是否有办法使此模式视图显示在keyWindow视图的上方(z轴上) 我的答案 最后,我将我的第一个自定义UIViewController添加到self.tabBarController。这允许UIViewController重叠导航栏和选项卡栏 然后
[[UIApplication sharedApplication]keyWindow]
中添加了一个视图,因为我们希望它与导航栏重叠
现在,我们想点击视图上的一个按钮并以模式打开一个窗口,理想情况下使用presentViewController
。是否有办法使此模式视图显示在keyWindow视图的上方(z轴上)
我的答案
最后,我将我的第一个自定义UIViewController
添加到self.tabBarController
。这允许UIViewController
重叠导航栏和选项卡栏
然后,我使用[self.navigationController presentViewController:animated:completion]
来表示模式,该模式高于z轴上的所有其他模式
下面是将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];
您应该重新考虑添加覆盖视图的方式
如果希望视图与导航栏重叠,只需将此视图添加为导航栏的顶子视图即可。或者,您可以将其添加为导航控制器视图的顶部子视图。对不起,您可以对此进行一点扩展吗?当我查找诸如“导航控制器视图”或“顶部子视图”之类的术语时,我找不到任何信息。关于在
导航栏
顶部放置UIViewController
,我发现的几乎所有东西都是使用keyWindow。