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回调
- block 内不能使用self ,会造成循环引用. 外头使用__block typeof(self) bself = self; 或者__weak id safeSelf = self 修饰