美文网首页
iOS去掉iOS系统弹框

iOS去掉iOS系统弹框

作者: 衡道众 | 来源:发表于2021-10-20 11:40 被阅读0次

写在实现presentViewController:animated:completion:之前

#import <objc/runtime.h>

Method presentM = class_getInstanceMethod(self.class, @selector(presentViewController:animated:completion:));
Method presentSwizzlingM = class_getInstanceMethod(self.class, @selector(dy_presentViewController:animated:completion:));
// 替换方法
method_exchangeImplementations(presentM, presentSwizzlingM);

识别系统弹框同时阻止弹出

- (void)dy_presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion {
    
    if ([viewControllerToPresent isKindOfClass:[UIAlertController class]]) {
        NSLog(@"title : %@",((UIAlertController *)viewControllerToPresent).title);
        NSLog(@"message : %@",((UIAlertController *)viewControllerToPresent).message);
        
        UIAlertController *alertController = (UIAlertController *)viewControllerToPresent;
        if (alertController.title == nil && alertController.message == nil) {
            return;
        } else {
            [self dy_presentViewController:viewControllerToPresent animated:flag completion:completion];
            return;
        }
    }
    
    [self dy_presentViewController:viewControllerToPresent animated:flag completion:completion];
}

相关文章

网友评论

      本文标题:iOS去掉iOS系统弹框

      本文链接:https://www.haomeiwen.com/subject/rdltaltx.html