1

在我的应用程序中,我有一个文件夹文件(一对多关系)。因此,当我打开我的应用程序时,我的 firstViewController 包含所有文件,当单击每个文件夹时,它会打开一个 tableViewController 显示该文件夹中的文件。

现在,每当我滑动任何行时,它都会移动到底行并且表格会相应更新,下一个滑动行将位于第一个滑动行的上方。

例如,目前如果我的表包含

0 1 2 3
A B C D

刷A后

0 1 2   3
B C D **A**

刷B后

0 1   2 3
C D **B A**

等等,

要执行此功能,我还应该更新 NSOrderedSet,如下所示

for (int i = 0; i < [self.folder.file count]; i++)
        {
            File *file =  [self.folder.file objectAtIndex:i];
            if(file.completedStatus == false)
            {
                m_position = i;
                m_finalIndexPath = [NSIndexPath indexPathForRow:i inSection:0];
            }
        }

        file.completedStatus = YES;

        id obj = [self.folder. file objectAtIndex:row];

        NSMutableOrderedSet *files = [self.folder.file mutableCopy];
        [files removeObjectAtIndex:row];
        [files insertObject:obj atIndex:m_position];


        NSIndexPath *currentIndexPath = [NSIndexPath indexPathForRow:row inSection:0];
        [m_tableView moveRowAtIndexPath:currentIndexPath toIndexPath:m_finalIndexPath];         
        self.folder.file = files;       
         }
         [self.managedObjectContext save:nil];    
         [m_tableView reloadData];

这在此视图中运行良好,这里 self.folder 是用户单击的特定文件夹

现在我有另一个名为 TestViewController 的 ViewController ,其中有一些文件对象,无论它们存在于哪个文件夹中。我已经用这些文件填充了这个 TestViewController 的表格,现在在这里,当我滑动单元格时,它们会改变颜色但不会像上面那样移动它们的位置

例如

0 1 2 3
A C B D

after swiping A and B

  0   1   2   3
**A** C **B** D

现在这里A可以属于文件夹1,B可以属于文件夹2,

当我关闭(关闭)这个 TestViewController 时,应该发生的是

a) 默认情况下它向我显示 fileViewController b) 文件 A 的颜色应该改变并且它应该通过检查是否已经有任何滑动单元格移动到一个位置。如果是,则应将其放置在其上方或底部。

c) 颜色 B 类似。

问候兰吉特。

4

1 回答 1

2

兰吉特,

关于你的问题,我无法理解你在这里问什么。所以,请提供一些其他的细节。

要知道特定文件所属的文件夹,这很容易实现。

如果您在文件和文件夹之间设置了反向关系,只需访问该关系即可。

例如,如果调用反向关系toFolder,您可以检索当前文件夹,如

Folder* currentFolder = currentFile.toFolder; // or access it through KVC

要创建反向关系,请看这里:核心数据结构是否使用多个实体?

于 2013-01-08T13:58:50.707 回答