2014-02-06 63 views
0

在我的应用程序中,我显示了核心数据对象,在这种情况下,它是一个任务管理器。 我已经包括一个SWIP手势的行,当用户刷从左到右,一个UIView的是在下面的图片显示在屏幕的右侧,如:核心数据对象按钮操作

enter image description here

这是对于handleGestureLeftRight方法的代码:

-(void)handleGestureLeftRight:(UIGestureRecognizer *)gec 
{ 
    { 

     CGPoint p = [gec locationInView:self.tableView]; 

     NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:p]; 


     if (gec.state == UIGestureRecognizerStateEnded) { 


      NSLog(@"GESTURE LEFT-->RIGHT DONE"); 


      //BUTTONS AND LABELS DEFINITIONS ARE NOT SHOWN TO AVOID LONG CODE HERE 



     } 



    } 
} 

我需要你如何当用户点击右侧的按钮实现核心数据的操作帮助。例如,如果用户点击完成按钮,选定的行对象应该更改名为isDone的属性的值。点击其他按钮也应该发生,但是应该更改不同的属性值。 谢谢。

+1

您可以像设置任何其他对象一样在托管对象上设置属性值。他们是Objective-C对象,他们服从Objective-C规则。 –

+0

谢谢@TomHarrington,但我想在这种情况下,每个按钮都会有一个动作:@selector(buttonaction)方法,以及如何传递要更新的核心数据对象? – mvasco

+1

您不会将选择器传递给对象以更改其属性值 - 不适用于任何Objective-C对象。更改按钮操作方法中的属性值。 –

回答

2

当您添加的按钮,你的表视图中handleGestureLeftRight:,保存 在属性选择索引路径:

CGPoint p = [gec locationInView:self.tableView]; 
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:p]; 
self.currentIndexPath = indexPath; 

然后,在按键操作方法,您可以访问相应的核心数据对象 与

YourEntity *object = [self.fetchedResultsController objectAtIndexPath:self.currentIndexPath]; 

并更新其属性。当删除按钮时,设置

self.currentIndexPath = nil; 
+0

谢谢,我会根据您的建议更新我的代码。 – mvasco