点阴影区关闭 Modal View Controller

Last updated

Last updated
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
#import
@interface MyApplication : UIApplication
@end
#import "MyApplication.h"
@implementation MyApplication
-(void)sendEvent:(UIEvent *)event{
[super sendEvent:event];
// 关键是在这里拿到点击事件后,如果判断点击的是阴影区, 阴影区的View 是一个私有类, 名字叫UIDimmingView, 所以如果响应的点击事件是在这个View上的,我们就可以关闭当前的ModalView
UITouch* touch = [[[event allTouches] allObjects] lastObject];
if ([NSStringFromClass([[touch view] class]) isEqualToString:@"UIDimmingView"]) {
UIViewController * vc = [[[self keyWindow] rootViewController] presentedViewController]; // 找到正在显示的控制器
[vc dismissModalViewControllerAnimated:YES];
}
}
@end