0

Table View Controller にあったコードを Collection View Controller に変更しようとしています。現在、Segue を機能させようとしていますが、次のエラーが発生します。

「UICollectionView」の目に見える @interface はセレクター「indexPathForSelectedRow」を宣言しません

これは私のセグエです:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ( [segue.identifier isEqualToString:@"showUpcomingRelease"]){
        UpcomingReleaseViewController *upcomingReleaseViewController = (UpcomingReleaseViewController *)[segue destinationViewController];
        upcomingReleaseViewController.singleRelease = [self.upcomingReleases objectAtIndex:[[self.collectionView indexPathForSelectedRow] row]];
    }
}

ありがとう。

4

3 に答える 3

6
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showUpcomingRelease"])
    {
        NSIndexPath *selectedIndexPath = [[self.collectionView indexPathsForSelectedItems] objectAtIndex:0];
        UpcomingReleaseViewController *upcomingReleaseViewController = [segue destinationViewController];
        upcomingReleaseViewController.singleRelease = self.upcomingReleases[selectedIndexPath.row];
    }
}
于 2013-09-05T22:22:37.320 に答える
2

indexPathsForSelectedItemsの代わりに使用するだけですindexPathsForSelectedRow
ただし、複数の項目を選択すると、この命令は複数の indexPath を返します。allowsMultipleSelectionUICollectionView の を に設定して、選択を 1 つの項目に制限する必要がありNOます。

とはいえ、Xcode には優れたオートコンプリート機能があり、" index" と入力するとすぐに表示されます。Xcode で提供されindexPathsForSelectedItemsている優れたドキュメントを参照することもできます。私はそれがあなたを助けることを願っています!

于 2013-09-05T22:11:57.577 に答える
-2

ドキュメントから、2秒のグーグルリサーチ:

– indexPathsForSelectedItems
于 2013-09-05T21:57:00.267 に答える