将新条目添加到每个新条目的表顶部的表视图控制器
我到目前为止有一个工作的应用程序,基本上包括以下内容:
使用核心数据,我有一个表视图控制器与添加button模式调用新的视图控制器提示用户添加文本到三个字段。 当用户点击保存时,该条目被添加到表格视图控制器中作为填充了信息的字幕单元。它运行良好。
我感到困惑并且一直在寻找答案的是,每个新条目都被添加到单元格的底部,所以如果有足够的单元格填充屏幕,新添加的条目将被添加到底部。 我真的很想得到每个新的条目到表格视图单元格的顶部。
我已经实现了按字母顺序sorting的sortDescriptors,但也是如此,但是我想要在表视图的顶部添加新的条目,而不pipe起始字符。
我的FetchRequest目前看起来像这样:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Transaction"]; NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"whoBy.name" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; fetchRequest.sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; self.transactions = [[managedObjectContext executeFetchRequest:fetchRequest error:nil]mutableCopy];
这是将条目添加到数据库的代码:
NSManagedObject *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:context]; [person setValue:self.nameTextField.text forKey:@"name"]; [transaction setValue:person forKey:@"whoBy"];
任何想法将不胜感激!
您也可以通过Coredata获取请求以降序的方式获得答案。
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"date" inManagedObjectContext:self.managedObjectContext]; [fetchRequest setEntity:entityDesc]; [fetchRequest setFetchBatchSize:10]; NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES]; NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil]; [fetchRequest setSortDescriptors:sortDescriptors]; NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
你可以在地方插入新的logging
[self.tableview insertRowsAtIndexPaths:indexPath withRowAnimation:YES ];
而且你也可以通过更新数组来完成。
You can add object to as: [yourArray insertObject:object atIndex:0]; //for first row.
然后用新数组重新加载表:
[yourTable reloadData]
这将为你工作。
如果有人正在阅读本文,我已经将这个问题排除在外供将来参考。
在添加条目视图控制器(视图控制器添加条目到数据库,并有一个保存button的方法),我做了以下几点:
1)我添加了一个属性的类(@属性(非primefaces,强大)的NSDate * dateToday; 2)在保存方法,我做了以下几点:
self.dateToday = [NSDate date]; [transaction setValue:self.dateToday forKey:@"createdDate"]; // transaction is looking into the Transaction Entity which has an attribute called createdDate of type Date.
3)在TableViewController和NSFetchRequest,我做了以下:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"createdDate" ascending:NO]; NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; [fetchRequest setSortDescriptors:sortDescriptors];
现在,当我创build一个新条目时,由于Ascending设置为NO,新创build的条目位于Table View Controller的顶部。
感谢您的指导@Pradhyuman Chavda