uialertview block 回调

最近项目中需要对uialertview的选择进行判断然后回调,因此想到了block,网上搜了搜,发现了UIAlertView-Block,觉得很方便,因此分享出来。可能许多人早就用过了,也就不详细说明了,直接上代码。


if(![str isEqual: @"javascript:;"])
    {
        if ([str rangeOfString:@"tel://" options:NSCaseInsensitiveSearch].location != NSNotFound)
        {
            UIAlertView *aView = [[UIAlertView alloc] initWithTitle:nil
                                                            message:@"确认拨打电话:"
                                                  cancelButtonTitle:@"取消"
                                                  otherButtonTitles:@"拨打", nil];
            [aView show];
            [aView setHandler:^(UIAlertView *alert, NSInteger buttonIndex)
             {
                 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
             }
             forButtonAtIndex:1];
        }
        else
        {
            ShopDetailViewController *ctl = [[ShopDetailViewController alloc] init];
            ctl.shopDetailUrl = [dict objectForKey:@"url"];
            ctl.shouldHideTabbar = YES;
            ctl.hidesBottomBarWhenPushed = YES;
            
            [self.navigationController pushViewController:ctl animated:YES];
        }
    }


其实现在很多代码中都换成了block,相比代理来说,看到别人这样分析的。

公共接口,方法较多也选择用delegate进行解耦 
iOS有很多例子比如最常用tableViewDelegate,textViewDelegate 

异步和简单的回调用block更好 
iOS有很多例子比如常用的网络库AFNetwork,ASIHTTP库,UIAlertView类。 

都是为了在具体的实现Delegate或Block中再进行处理,属于策略模式,具体算法在具体算法类中实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值