UIAlertView 使用

UIAlertview 的使用<iOS7.0之前>

项目需求兼容ios7 所以UIAlertViewController 不能满足我的使用,在UIAlertView代理点击哪一个按钮的代理方法 中用block回调给删除的方法中获取cell 实现删除操作:

 #pragma mark  删除代理方法
- (void)shopingCellDelegateForGoodsDelete:(ShoppingCell *)cell WithSelectButton:(UIButton *)selectBt
{
    
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"是否删除该商品?" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
    
    __block typeof(self) safeSelf = self;
    _reloadDataAction = ^(){
     
        NSIndexPath *indexPath = [safeSelf.tableView indexPathForCell:cell];
        ShopingCarGroup *group = safeSelf.shopingCarGroupArray[indexPath.section];
        ShopingCar *shopingModel = group.goodsList[indexPath.row-1];
        [safeSelf showCommonProcess:@"删除中..."];
        [[SQGoodManager sharedInstance] delCartGoodsWithId:shopingModel.goodsId price:shopingModel.price callBack:^(int result, id parameters) {
            
            [safeSelf deletesShopSuccessWithShop:shopingModel group:group indexPath:indexPath];
            
            [safeSelf hideCommonProcess];
            [[CommonParam sharedInstance] errorDict:parameters isHidden:safeSelf.shopingCarArr.count taostView:safeSelf.tableView errorType:nil];
        }];
    
    };
    
    [alertView show];
    
}
UIAlertView代理方法
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
   
    
    if (buttonIndex == 1) {
        if (_reloadDataAction) {
            _reloadDataAction();
        }
    }
}

知识点:

1.block回调

  1. block 内不能使用self ,会造成循环引用. 外头使用__block typeof(self) bself = self; 或者__weak id safeSelf = self 修饰

推荐阅读更多精彩内容