UITableview列出项目问题



我有一个设置选项,其中有一个表视图(1)将显示"类别",通过选择该类别,将在下一个表中显示"子类别"。

我有两个独立的数组用于类别和子类别。在"类别"中,我有@"商业"和@"个人"(预装),在索引0的"子类别"中有10个与商业有关的项目的列表,在索引1中有一组10个与个人有关的项目。

通过点击业务或个人,它可以毫无问题地显示保存的子类别列表。从这里,用户可以从表视图中添加自己的类别和子类别。

例如,如果我输入了一个名为@"All"的新类别,则添加了@"All",并将其放置在索引2 中

"类别"表视图通过选择所需的"业务"或"个人"来显示@"业务"@"个人"@"全部"。子类别项目来自索引0(预加载了10个项目)(用于"业务")、索引1(预加载的10个项目)和索引3(空列表)(用于全部)(用户可以添加自己的项目)。

当我对类别数组使用"NSSortDescriptor"时

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:nil ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)];
[arrCategory sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

现在,"类别"表视图列表为@"全部"@"业务"@"个人",因此"子类别"列表变得不匹配。对于@"Business",我有10个项目的子类别,排序后的10个项目列表为@"All"类别。类别项的索引路径在使用"NSSortDescriptor"后发生更改,因此子类别变得不匹配。

使用"NSSortDescriptor"作为类别后,如何更改与"类别"匹配的"子类别"(项)索引?

您应该创建模型并使用公共数据源

@interface CategoryModel : NSObject
@property (nonatomic,retain) NSString *name;
@property (nonatomic,retain) NSMutableArray *subCategories; //should contain subCategory class objects
/* all other properties */
@end
@interface subCategory : NSObject
@property (nonatomic,retain) NSString *name;
/* all other properties */
@end

最新更新