• 转 UIAlertView 不显示、屏幕变灰


    UIAlertView 不显示、屏幕变灰
    SvenFang
    1181
    在
    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(response:) name:url object:nil];
    
    的回调方法response里面弹出UIAlertView,当执行到该代码时,屏幕变灰,但是UIAlertView没有出现,背景按钮均不可点击,输出得到UIAlertView对象的centre x和y均为0 ,alpha为1,等高人指点,下面是response方法的代码和屏幕截图
    
    - (void)response:(NSNotification *)notification
    {
        if (isStop == 0) {//数据超时后,不作处理
            return;
        }
        if (isStop == 1) {
            [_timer invalidate];
            isStop = 0;
        }
        //停止等待控件
        [spinner performSelectorOnMainThread:@selector(stopAnimating) withObject:nil waitUntilDone:NO];
        [spinner removeFromSuperview];
        CommentXMLParser *commentXML=[notification object];
    //    if([commentXML.responseDict objectForKey:@"return_result"]!=nil){
    //        
    //        NSLog(@"请求4001的返回---%@",[commentXML.responseDict objectForKey:@"return_result"]);
    //        
    //        if([[commentXML.responseDict objectForKey:@"return_result"] isEqualToString:RETURN_NO])
    //        {
    //            //这里只指网络失败
    //            cmd = commentXML.returnHeader.cmd;
    //            [self performSelectorOnMainThread:@selector(showDisconeect) withObject:nil waitUntilDone:NO];
    //        }
    //    }
        if(commentXML.done){ //如果有数据返回
            if([commentXML.returnHeader.rspcode isEqualToString:RESPONSE_SUCCESS])
            {//正确返回
                
                //解析协议
                if( [commentXML.returnHeader.cmd isEqualToString:B2B00004001])
                {
                    score = [commentXML.responseDict objectForKey:@"integral_all"];
                    score_can_use = [commentXML.responseDict objectForKey:@"integral_able"];
                    balance = [commentXML.responseDict objectForKey:@"balance"];
                    
                    [self performSelectorOnMainThread:@selector(viewUpdateBaseInfo) withObject:nil waitUntilDone:NO];
                }
                else if([commentXML.returnHeader.cmd isEqualToString:B2B00004017])
                {
                    gift_card_balance = [commentXML.responseDict objectForKey:@"balance"];
                    [self performSelectorOnMainThread:@selector(viewUpdateBaseInfo) withObject:nil waitUntilDone:NO];
                }
                else if([commentXML.returnHeader.cmd isEqualToString:B2B00004002])
                {
                    [[NSNotificationCenter defaultCenter] postNotificationName:@"Settlement" object:commentXML.responseDict];
                    [self performSelectorOnMainThread:@selector(closePayTool) withObject:nil waitUntilDone:NO];
                }
                else{
                    NSAssert(true, @"非法协议,本处理函数只处理4001,4017, 4002协议", nil);
                }
            }else{//如果业务失败
                NSLog([commentXML.returnHeader.cmd stringByAppendingString:@"业务失败, 失败原因:%@"], [commentXML.headerDict objectForKey:@"rspdesc"]);
                
                //todo 提示业务失败, 类似android的toast效果
                UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提示" message:[commentXML.headerDict objectForKey:@"rspdesc"] delegate:nil cancelButtonTitle:@"确定" otherButtonTitles: nil];
                [alert show];
                [alert release];
    //            [OMGToast showWithText:[commentXML.headerDict objectForKey:@"rspdesc"] bottomOffset:10 duration:5];
            }
        }
    
    
    
    评论 (1) • 分享 • 链接 • 2012-09-11 
    0
    Alert的delegate设置了吗? – 吴复 2012-09-11
    1个答案 票 数  
    davidzhang
    01
    在这里面我建议你这样做,将下面这段代码
    
    //todo 提示业务失败, 类似android的toast效果
                UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提示" message:[commentXML.headerDict objectForKey:@"rspdesc"] delegate:nil cancelButtonTitle:@"确定" otherButtonTitles: nil];
                [alert show];
    
    改为
    
    [alert performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES];
    
    如果还是不明白,可以参考这里http://www.gowhich.com/blog/206

    转:http://www.dewen.org/q/5474

  • 相关阅读:
    利用AspNetPager控件实现数据分页(存储过程)
    System.Reflection
    规范管理提高效率——国内主要api接口文档工具盘点
    文件管理命令
    操作系统磁盘分区
    实体类配置(Entity)
    SpEL语法
    杂乱无章
    从struts2源码学到的技巧
    Spring基于注解的缓存配置
  • 原文地址:https://www.cnblogs.com/ygm900/p/3153899.html
Copyright © 2020-2023  润新知