Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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 从子视图显示模态ViewController_Ios_Objective C_Modalviewcontroller - Fatal编程技术网

Ios 从子视图显示模态ViewController

Ios 从子视图显示模态ViewController,ios,objective-c,modalviewcontroller,Ios,Objective C,Modalviewcontroller,我试图从视图控制器B显示模式视图控制器C。B的视图不覆盖全屏,而是另一个视图控制器a的子视图。当我试图显示全屏模式时,我看到的是模式覆盖全屏,但是,当我点击屏幕上的某些位置时,控件将“通过”A的视图 通过某种形式的授权,我可以从A中提出模式来绕过这个问题,但我不知道为什么会发生这种情况!毕竟,如果您有一个选项卡栏控制器来管理您的一个视图,并且您尝试呈现一个模式视图,那么它可以很好地覆盖整个屏幕。幕后有什么神奇的东西吗?我不认为有任何关于模式如何实现的官方文档,但是任何视图都可以获得和调用pres

我试图从视图控制器B显示模式视图控制器C。B的视图不覆盖全屏,而是另一个视图控制器a的子视图。当我试图显示全屏模式时,我看到的是模式覆盖全屏,但是,当我点击屏幕上的某些位置时,控件将“通过”A的视图


通过某种形式的授权,我可以从A中提出模式来绕过这个问题,但我不知道为什么会发生这种情况!毕竟,如果您有一个选项卡栏控制器来管理您的一个视图,并且您尝试呈现一个模式视图,那么它可以很好地覆盖整个屏幕。幕后有什么神奇的东西吗?

我不认为有任何关于模式如何实现的官方文档,但是任何视图都可以获得和调用presentmodel的信息。。。在rootViewController属性上。这将使您的模式全屏显示。我相信还有其他方法可以达到同样的效果

[[[[UIApplication sharedApplication] keyWindow] rootViewController] presentModalViewController:myModalVC animated:YES];

在这种情况下,您需要使用addSubview:和bringSubviewToFront:为所有视图控制器实现自己的“模态”方法。我在我的一个更大的项目中做过这件事,我想从模态视图中获得一些不同的行为。

我认为没有任何关于模态如何实现的官方文档,但是任何视图都可以获得和调用presentModal的信息。。。在rootViewController属性上。这将使您的模式全屏显示。我相信还有其他方法可以达到同样的效果

[[[[UIApplication sharedApplication] keyWindow] rootViewController] presentModalViewController:myModalVC animated:YES];
在这种情况下,您需要使用addSubview:和bringSubviewToFront:为所有视图控制器实现自己的“模态”方法。我在我的一个更大的项目中做过这项工作,我想从模态视图中获得一些不同的行为。

这对我来说很有用:

UIViewController* vc = [[[UIViewController alloc] init] autorelease];
UIWindow* keyWindow = [[UIApplication sharedApplication] keyWindow];
UIView* topView = [[keyWindow subviews] objectAtIndex:[[keyWindow subviews] count] - 1];
vc.view = topView;

[vc presentModelViewController...
基本上,您可以创建一个新的UIViewController,并将其附加到主窗口的最顶部视图(即用户当前看到的视图)。

这对我很有用:

UIViewController* vc = [[[UIViewController alloc] init] autorelease];
UIWindow* keyWindow = [[UIApplication sharedApplication] keyWindow];
UIView* topView = [[keyWindow subviews] objectAtIndex:[[keyWindow subviews] count] - 1];
vc.view = topView;

[vc presentModelViewController...

基本上,您可以创建一个新的UIViewController,并将其附加到主窗口(即用户当前看到的视图)的最顶部视图上。

简单,但不确定接受度和效率。这是我用的

  • 将所有视图控制器嵌入根视图下方的主视图中
  • 在禁用mainView的userInteractionEnabled标志时,向rootView添加任何模式视图。模态视图应添加到rootView,而不是mainView
  • 完成后,重新启用mainView的用户交互
    希望这有助于…

    简单,但不确定接受度和效率。这是我用的

  • 将所有视图控制器嵌入根视图下方的主视图中
  • 在禁用mainView的userInteractionEnabled标志时,向rootView添加任何模式视图。模态视图应添加到rootView,而不是mainView
  • 完成后,重新启用mainView的用户交互
    希望这能有所帮助……

    事实上,这就是我所做的……但似乎有些不令人满意。例如,如果您试图在一个模态上显示一个模态,那么这种技术不起作用,因为第二个模态现在显示在第一个模态的下面。是的,我通过调用根视图控制器来做到这一点。这似乎仍然是buck的最佳选择。iOS 5 iPad没有显示我的显示视图控制器,这是我使用的修复程序,所以谢谢!事实上,这就是我所做的……但似乎有些不令人满意。例如,如果您试图在一个模态上显示一个模态,那么这种技术不起作用,因为第二个模态现在显示在第一个模态的下面。是的,我通过调用根视图控制器来做到这一点。这似乎仍然是buck的最佳选择。iOS 5 iPad没有显示我的显示视图控制器,这是我使用的修复程序,所以谢谢!消息dismissModalViewControllerAnimated:在模态视图上,控制器似乎不再使用解决方案Elad关闭视图。。。有什么想法吗?同样,使用新的符号:UIView*topView=[[UIApplication sharedApplication].keyWindow.subviews lastObject];消息dismissModalViewControllerAnimated:在模态视图上,控制器似乎不再使用解决方案Elad关闭视图。。。有什么想法吗?同样,使用新的符号:UIView*topView=[[UIApplication sharedApplication].keyWindow.subviews lastObject];