UIAlertView 只弹一次实现

作者: NN_逝去 | 来源:发表于2016-10-13 10:23 被阅读547次

    思路:把所有创建的alertView都存储在数组里。。。遍历保留最后一个😂

    Talk is cheap. Show me the code

    环信EMAlertView EMAlertView类文件地址

    在EMAlertView中多加了一句话.png

    MXAlertViewManager 单例的实现方式如下:

    #import "MXAlertViewManager.h"
    #import "EMAlertView.h"
    
    @interface MXAlertViewManager ()
    
    @property (nonatomic, strong) NSMutableArray *alertArray;
    
    @end
    
    @implementation MXAlertViewManager
    
    + (instancetype)sharedInstance
    {
        static MXAlertViewManager *_sharedManager = nil;
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            _sharedManager = [[self alloc] init];
        });
        return _sharedManager;
    }
    
    - (instancetype)init
    {
        if (self == [super init]) {
            _alertArray = [NSMutableArray array];
        }
        return self;
    }
    
    - (void)alertCount:(EMAlertView *)alertView
    {
        [self.alertArray addObject:alertView];
    
        if (self.alertArray.count > 1) {
            for (NSInteger i=0; i<self.alertArray.count-1; i++) {
                EMAlertView *alertView = self.alertArray[i];
                [alertView dismissWithClickedButtonIndex:-1 animated:YES];
            }
        }
    }
    
    @end```
    
    [iOS dismiss UIAlertView beforing showing another](http://stackoverflow.com/questions/5399219/ios-dismiss-uialertview-beforing-showing-another)  从`stackoverflow`搜索的类似跟我的问题描述
    或者你用`runtime`拦截`show`方法
    
    ^_^ 如果有其他更好的想法,欢迎提出,共同进步。。。

    相关文章

      网友评论

      • DidLoad:这样会有问题,alertArray 的count会越来越大, 会增加不必要的循环, 还应该在遍历完后重新初始化alertArray
      • 五蕴盛:Talk is cheap. Show me the code
      • 飞翔de小苹果:这个问题经常会有,比如网络请求失败的弹窗,很有用
      • 踩坑小分队:强哥牛逼了
        NN_逝去:@小岩同学 低调点 :disappointed_relieved: 我只是来骗关注的

      本文标题:UIAlertView 只弹一次实现

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