2014-02-06 1 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

Смежные вопросы