[英]Why modal view's (presented by detail view controller) presenting view controller is split view controller?
[英]Presenting view controller response touch events when modal view controller is presented
这是代码:
UIStoryboard *myStoryboard = [UIStoryboard storyboardWithName:@"StoryboardName" bundle:nil];
UIViewController *presentedViewController = [myStoryboard instantiateViewControllerWithIdentifier:@"IdentifierName"];
presentedViewController.modalPresentationStyle = UIModalPresentationFormSheet;
presentingViewController presentViewController:presentedViewController animated:NO completion:nil];
presentingViewController的视图不会响应任何触摸事件,但是我希望它接受触摸事件,我该怎么办? 感谢任何建议!
这是预期的行为,应该是您在大多数应用中看到的。 Apple的App Store应用程序确实允许您在模式表单之外点击以将其关闭,因此,在有限的范围内,有一些先例可以接受。 如果您的设计绝对需要,请考虑在提供的视图控制器中设置和拆除基于窗口的手势识别器。
例如,要实现轻拍从外部到关闭的行为,请在viewDidAppear:
配置轻viewDidAppear:
手势识别器。 您可以在viewWillDisappear:
上将其删除viewWillDisappear:
如果在调用时它仍然存在。
在轻敲处理程序中,您想获取轻敲在窗口坐标中的位置,即:
CGPoint tapPoint = [recognizer locationInView:nil];
然后,您可以对几何图形进行一些检查,以查看是否在模态表示的视图上或外部(在与您的呈现视图控制器相对应的变暗区域上)发生了敲击。 UIView有一个pointInside:withEvent:
方法可能对此有所帮助。
这是呈现ViewController的简单方法...
ViewController *view = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
[self presentViewController:view animated:YES completion:nil];
享受代码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.