写真を含むコレクション ビューを含む何かを行っています。セルの 1 つを選択すると、大きな画像が表示される新しいビューに移行します。
セグエの準備はこちら
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"showPhotoSegue"]) {
NSIndexPath *ip = [self.photoCollectionView indexPathForCell:sender];
PhotoDisplayViewController *viewController = segue.destinationViewController;
Photo* photo = [self.fetchedResultsController objectAtIndexPath:ip];
NSLog(@"setting PHOTO at indexPath %@", ip);
[viewController setPhoto:[UIImage imageWithContentsOfFile:photo.url]];
}
}
そして、ここは didSelectItemAtIndexPath
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
NSString *identifier = @"showPhotoSegue";
[self performSegueWithIdentifier:identifier sender:self];
NSLog(@"Selected item at %@", indexPath);
}
私のビューは常に空なので、印刷行ステートメントを追加しました。出力は常に次のようになります
Selected cell at <NSIndexPath 0x1e084940> 2 indexes [0, 0], detail view controller
私の質問は、NSIndexPath が常に 2 つのインデックスのペアである理由と、それを私の prepareforsegue で使用してセグエのビューを設定する方法です。
ありがとう