Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在添加到keyWindow的视图上方显示模式?_Ios_Objective C_Modalviewcontroller_Keywindow - Fatal编程技术网

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。