在我的应用程序中,我有一个文件夹文件(一对多关系)。所以,当我打开我的应用程序时,我的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.
此致 兰吉特。
答案 0 :(得分:2)
兰吉特,
关于你的问题,我无法理解你在这里问的是什么。所以,请提供一些其他细节。
要知道特定文件所属的文件夹,这很容易实现。
如果您在文件和文件夹之间设置了反向关系,只需访问该关系即可。
例如,如果调用反向关系toFolder
,则可以检索当前文件夹,如
Folder* currentFolder = currentFile.toFolder; // or access it through KVC
要创建反向关系,请查看此处:Core data structure use multiple entities or not?