1

В коллекцииView didSelectItemAtIndexPath: (NSIndexPath *) метод indexPath, пытающийся загрузить массив аудиофайлов в ячейки просмотра коллекции, но на основе строки indexPath пропускает ячейку с индексом 0, а из ячейки в индексе 1 - звуковой файл когда ячейка выбрана. Я не могу понять, почему.collectionView сделалSelectItemAtIndexPath

Вот мой код

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
audioArray =[[NSArray alloc] initWithObjects:@"0", @"1", @"2", @"3", nil]; 

NSString *filePath = [audioArray objectAtIndex:indexPath.row]; 

NSString *audioFilePath = [[NSBundle mainBundle] pathForResource:filePath ofType: @"mp3"]; 

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: audioFilePath]; 

audioPlayer = [[AVAudioPlayer alloc] 
       initWithContentsOfURL:fileURL error:nil]; 

} 

Если кто-то может мне точку в правильном направлении. Буду признательна.

Спасибо за помощь.

ответ

3

Наконец фик его

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 

if ([[segue identifier] isEqualToString:@"showDetail"]) 
{ 
    NSIndexPath *selectedIndexPath = [[self.collectionView indexPathsForSelectedItems] objectAtIndex:0]; 

    // load the image, prevent it from being cached using 'initWithContentsOfFile' 

    NSString *imageNameToLoad = [NSString stringWithFormat:@"%d_full", selectedIndexPath.item]; 

    NSString *pathToImage = [[NSBundle mainBundle] pathForResource:imageNameToLoad ofType:@"jpg"]; 

    UIImage *image = [[UIImage alloc] initWithContentsOfFile:pathToImage]; 


    NSString *audioToLoad = [NSString stringWithFormat:@"%d", selectedIndexPath.item]; 


    NSString *audioFilePath = [[NSBundle mainBundle] pathForResource:audioToLoad ofType: @"mp3"]; 

    NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: audioFilePath]; 

    audioPlayer = [[AVAudioPlayer alloc] 
        initWithContentsOfURL:fileURL error:nil]; 

    DetailViewController *detailViewController = [segue destinationViewController]; 

    detailViewController.image = image; 

    detailViewController.audioPlayer = audioPlayer; 

       }   
      } 

Это может помочь кто-то.

Смежные вопросы