Ios 从子视图显示模态ViewController
我试图从视图控制器B显示模式视图控制器C。B的视图不覆盖全屏,而是另一个视图控制器a的子视图。当我试图显示全屏模式时,我看到的是模式覆盖全屏,但是,当我点击屏幕上的某些位置时,控件将“通过”A的视图Ios 从子视图显示模态ViewController,ios,objective-c,modalviewcontroller,Ios,Objective C,Modalviewcontroller,我试图从视图控制器B显示模式视图控制器C。B的视图不覆盖全屏,而是另一个视图控制器a的子视图。当我试图显示全屏模式时,我看到的是模式覆盖全屏,但是,当我点击屏幕上的某些位置时,控件将“通过”A的视图 通过某种形式的授权,我可以从A中提出模式来绕过这个问题,但我不知道为什么会发生这种情况!毕竟,如果您有一个选项卡栏控制器来管理您的一个视图,并且您尝试呈现一个模式视图,那么它可以很好地覆盖整个屏幕。幕后有什么神奇的东西吗?我不认为有任何关于模式如何实现的官方文档,但是任何视图都可以获得和调用pres
通过某种形式的授权,我可以从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,并将其附加到主窗口(即用户当前看到的视图)的最顶部视图上。简单,但不确定接受度和效率。这是我用的
希望这有助于…简单,但不确定接受度和效率。这是我用的
希望这能有所帮助……事实上,这就是我所做的……但似乎有些不令人满意。例如,如果您试图在一个模态上显示一个模态,那么这种技术不起作用,因为第二个模态现在显示在第一个模态的下面。是的,我通过调用根视图控制器来做到这一点。这似乎仍然是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];