2013-07-06 68 views
1

我正在寻找什么方法,我应该查看将用户初始输入与以下选定行相链接。根据用户对数据进行分组初始uitableview输入

目前我加入excercises到coredata实体,当他们点击如下:

enter image description here

我所想要实现的excercises被添加到在前面的命名常规UITableView的。这涉及用户命名常规组(例如核心数据实体中的'routinename'),例如添加到初始核心数据实体的“4天锻炼”。下面的练习以基于例程组的关系添加到实体详细信息中。

enter image description here

我已经创建了一个1的核心数据模型的关系一对多的关系:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UIAlertView *messageAlert = [[UIAlertView alloc] 
           initWithTitle:@"Row Selected" message:@"Added to Routine!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    NSManagedObjectContext *context = [self managedObjectContext]; 

    // Create a new device 
    ExcerciseInfo *info = [_fetchedResultsController objectAtIndexPath:indexPath]; 
     NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"Routines" inManagedObjectContext:context]; 
    [newDevice setValue: info.name forKey:@"routinename"]; 

    NSManagedObject *newDevice1 = [NSEntityDescription insertNewObjectForEntityForName:@"RoutinesDetails" inManagedObjectContext:context]; 
    [newDevice1 setValue: info.name forKey:@"name"]; 

    NSError *error = nil; 

    // Save the object to persistent store 
    if (![context save:&error]) { 
     NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]); 
    } 

    // Display Alert Message 
    [messageAlert show]; 

    //Update with checkmark 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    cell.accessoryType = UITableViewCellAccessoryCheckmark; 
} 

enter image description here

我它目前使用增加了实体

基本上我正在寻找什么方法,我应该看着实现这一点和任何建议到代码。

我routineDetailViewController对“按钮”

- (IBAction)SaveButton:(id)sender { 
    NSManagedObjectContext *context = [self managedObjectContext]; 
    NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"Routines" inManagedObjectContext:context]; 
    [newDevice setValue:self.nameTextField.text forKey:@"routinename"]; 

} 

目前他们增加罚款核心数据下面,但我无法将它们分组。

谢谢。

回答

0

在表视图分组通过“节”与这些方法进行:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)documentTableView 
     //return number of routines 

- (NSInteger)tableView:(UITableView *)documentTableView numberOfRowsInSection:(NSInteger)section 
     //return number of routine details for this routine 

- (NSString *)tableView:(UITableView *)documentTableView titleForHeaderInSection:(NSInteger)section 
     //return name of this routine 

你要想想你将如何处理“取消”。当你选择表格单元格时,你不需要插入行。你打算做一个“回滚”吗?或者,您可以跟踪另一个阵列中的选定行,并在点击“保存”时完成所有数据库的工作。

最后,你的messageAlert被分配,但是被释放。它泄漏。

+0

我已经有取消行动排序,只是不想混乱的问题了。我正在考虑将选择放在n数组中,但我真正关注的是如何将选定的行与用户输入的例程名称链接起来。 – Sgillon

+0

我想这可以通过让用户点击“完成”时处理所有操作来实现? – Sgillon

0

当使用Sensible TableView框架时,您还应该能够将对象自动分组。检查一下,应该为你节省很多时间。