我在UITableViewCell
的附件视图中创建了一个自定义按钮。该按钮在列表视图中作为自定义复选框。
我想以编程方式将“已检查”项目移动到UITableView
的第二部分,但我遇到了这样的困难。
我正在关注MVC,我正在使用BOOL didArrive
,在以下方法中对已检查的项目进行排序:
- (void)shuffleGuests
{
RCGuestManager *movedGuest = [[RCGuestManager alloc] init];
for (id guest in allGuestsPending) {
if ([guest didArrive]) {
[allGuestsArrived addObject:guest];
movedGuest = guest;
}
}
[allGuestsPending removeObjectIdenticalTo:movedGuest];
}
注意两个数组。未选中的项目应该进入allGuestsPending数组,并且已检查的访客应该进入allGuestsArrived数组。
点击行时会调用此方法。检查该项,然后将其从表视图中的一个部分移动到另一个部分(与数组匹配)。
当然,我不能在枚举期间删除一个对象,因此我试图将移动的对象放入一个变量中,然后将其从前一个数组中删除,同时将其添加到新数组中。
上述方法导致数组中的最后一项始终移动到新节。
有没有更好的方法来做这类事情?
答案 0 :(得分:0)
请尝试以下想法:
NSMutableArray *guestsToRemove = [NSMutableArray array];
for (id guest in allGuestsPending) {
if ([guest didArrive]) {
[allGuestsArrived addObject: guest];
[guestsToRemove addObject: guest];
}
}
[allGuestsPending removeObjectsInArray: guestsToRemove];