根据索引从数组中删除对象

时间:2018-05-07 07:42:11

标签: objective-c

我在这里有数组图像我正在检查并取消选中图像最后我有删除按钮这是我检查的图像我需要根据按钮选择从数组中删除图像 这是我的代码

- (IBAction)delete_btn_touch:(id)sender {
     [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    for(int i=0; i<_GalleryimageArry.count;i++){
        _imageV = [[UIImageView alloc]initWithFrame:CGRectMake(CGRectGetWidth(self.view.frame) * i/2*0.6, 0, 100, 100)];

        self.Crossbtn =[[UIButton alloc]initWithFrame:CGRectMake(_imageV.image.size.width/2+80,0,20,20)];
        UIImage *btnImage = [UIImage imageNamed:@"unselectimag"];
        [self.Crossbtn setImage:btnImage forState:UIControlStateNormal];
        _imageV.contentMode = UIViewContentModeScaleAspectFill;
        _imageV.image = [_GalleryimageArry objectAtIndex:i];
        [_imageV setUserInteractionEnabled:YES];
        _imageV.tag = i;
        self.Crossbtn.tag =i;
        [self.Crossbtn addTarget:self action:@selector(deleteImage:) forControlEvents:UIControlEventTouchUpInside];
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapMethod:)];
        [_imageV addGestureRecognizer:tap];
        [self.imageV addSubview:self.Crossbtn];
       [self.imageGalleryscroll addSubview:_imageV];
        [MBProgressHUD hideAllHUDsForView:self.view animated:YES];
    }
    self.imageGalleryscroll.delegate = self;
    index=0;



    self.imageGalleryscroll.contentSize = CGSizeMake(CGRectGetWidth(self.view.frame) * _GalleryimageArry.count/2*0.7, CGRectGetHeight(self.imageGalleryscroll.frame));

    [self.imageGalleryscroll setPagingEnabled:YES];

    [self.imageGalleryscroll setShowsHorizontalScrollIndicator:NO];
    self.imageGalleryscroll.alwaysBounceVertical = NO;
     [MBProgressHUD hideHUDForView:self.view animated:YES];
}


-(void)deleteImage:(UIButton *)sender{
     btn = (UIButton *)sender;
    self.add_delete_view.hidden =YES;
   self.deleteview.hidden=NO;

    if( [[btn imageForState:UIControlStateNormal] isEqual:[UIImage imageNamed:@"unselectimag"]])
    {
        [btn setImage:[UIImage imageNamed:@"Crossimg"] forState:UIControlStateNormal];
        [btn setSelected:YES];
        [btn setTag:index];
    }
    else
    {
        [btn setImage:[UIImage imageNamed:@"unselectimag"] forState:UIControlStateNormal];
        // other statements
        self.selectedimages =@"No";
        image = [self.GalleryimageArry objectAtIndex:index];
        [self.GalleryimageArry addObject:image];
    }

    NSLog(@"%@", self.GalleryimageArry);
}
- (IBAction)delete_all_img_btn_touch:(id)sender {
    // self.view (change it with your button superview)
        if (btn.selected) {
           [self.GalleryimageArry removeObjectAtIndex:index];
        }

   //here i need to removeObjectAtIndex:index based on the how many button are selected 
}

任何人帮我解决这个问题 提前谢谢

1 个答案:

答案 0 :(得分:0)

使用以下代码清除控制器的后堆栈。

-(void)clearStack
{
    NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers];
    [navigationArray removeAllObjects];
    //[navigationArray removeObjectAtIndex: 2];
    self.navigationController.viewControllers = navigationArray;
}