Ios6 collectionView,didSelectItemAtIndexPath问题

Ios6 collectionView,didSelectItemAtIndexPath问题,ios6,uicollectionview,uicollectionviewcell,Ios6,Uicollectionview,Uicollectionviewcell,我对collectionView有一个有趣的问题,特别是didSelectItemAtIndexPath 我的应用程序有一个带有背景图像的特定视图,可以通过SQL进行访问。该视图中有一个带有collectionView的popover,用于更改父视图的背景,并访问其他可供购买的“集合” 我的问题是背景的变化。所有项目都正确显示在集合视图中,并且父项的背景将按其应该的方式更改。问题是所选的项目不是显示的项目,即使通过NSLog,我可以看到正在选择正确的图像并将其传递回父级。父节点中有一个相应的NS

我对
collectionView
有一个有趣的问题,特别是
didSelectItemAtIndexPath

我的应用程序有一个带有背景图像的特定视图,可以通过SQL进行访问。该视图中有一个带有collectionView的popover,用于更改父视图的背景,并访问其他可供购买的“集合”

我的问题是背景的变化。所有项目都正确显示在集合视图中,并且父项的背景将按其应该的方式更改。问题是所选的项目不是显示的项目,即使通过
NSLog
,我可以看到正在选择正确的图像并将其传递回父级。父节点中有一个相应的
NSLog
,它显示与popover的
NSLog
相同的图像id

点击
collectionView
中的第一项时,会将父对象的背景更改为白色,就好像没有可用的图像一样。点击第二个单元格将显示第一个单元格的图像。点击第三个单元格将显示第二个单元格的图像。。。等等有15个图像可供选择

这是
didSelect
方法:

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    if ([_currentView isEqualToString:@"New_Journal"])
    {
        MyAppDelegate *appDelegate = (MyAppDelegate *)[UIApplication.sharedApplication delegate];
        // to get the variable back to the parent
        appDelegate.loadBackgroundID = indexPath.row; 
        // interact with the SQL via _settingsDao
        [_settingsDao updateJournalBackgroundId:_journalId withBackgroundId:appDelegate.loadBackgroundID];
        NSLog(@"Selected background: %d", indexPath.row);
        // notification to let EntryView know the background has changed
        [NSNotificationCenter.defaultCenter postNotificationName:@"aBackgroundChanged" object:self];
    }
}
编辑以显示SQL交互方法:

-(void)updateJournalBackgroundId:(int)journalID withBackgroundId:(int)newBackgroundId
{
    NSString *query = @"UPDATE BgIconBorderSettings SET background_id = ? WHERE journal_id = ?";
    FMDatabase *db = [dbUtils sharedDB];
    [db executeUpdate:query,[NSNumber numberWithInt:newBackgroundId],[NSNumber numberWithInt:journalID]];
    if([db hadError])
    {
        NSLog(@"Error %d: %@",[db lastErrorCode],[db lastErrorMessage]);    
    }       
}
有没有人知道如何得到正确的图像点击细胞显示?感谢您为解决此问题提供的任何帮助


正如吉尔格特所指出的。。。这是SQL数据库。它从1开始,而不是0。更改了ID,它就可以正常工作。

它获取的对象可能存在数学问题。您可以发布用于与SQL交互的代码吗?这只是一种预感,但是NSlog为newBackgroundId和journalID提供了什么?它是否匹配indexPath.section和indexPath.row?它们确实匹配。。。indexPath.row,newBackgroundId。每次点击的日志都匹配。只有一个部分。显示的EntryView日志ID与数据库日志ID匹配。如果它们不匹配,我可以理解背景图像中的差异。我唯一能想到的是,如果您的数据库(列或表,或者您将它们存储在SQL中的方式)没有像indexPath那样从0开始?在集合视图中选择最后一项时,您是否会崩溃?