удалить объекты из массива на основе индекса - PullRequest
0 голосов
/ 07 мая 2018

У меня есть массив изображений, здесь я делаю проверку и снимите флажки, наконец, у меня есть кнопка удаления, то есть изображения, которые я проверяю. Мне нужно удалить изображения из массива на основе выбора кнопки. Вот мой код

- (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 голосов
/ 21 мая 2018

Используйте следующий код, где вы хотите очистить задний стек контроллеров.

-(void)clearStack
{
    NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers];
    [navigationArray removeAllObjects];
    //[navigationArray removeObjectAtIndex: 2];
    self.navigationController.viewControllers = navigationArray;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...