0

我有一個UITableView,它顯示我的plist中的數據。有什麼方法可以使用UIMenuController編輯/刪除row的數據?使用UIMenuController編輯並刪除UITableView行

這將是罰款使用傳統的刷卡-的行以編輯/刪除該行,但我使用UISwipeGestureRecognizer顯示我secondViewController - 這個視圖控制器是在那裏我可以一個數據添加到我的plist

UIMenuItem顯示,但我不知道如何從這裏開始。

這將不勝感激,如果有人能走過我。

這是我的longPressHandler,它觸發我的UIMenuController

- (void)longPressHandler:(UILongPressGestureRecognizer *)sender 
{ 
    if ([sender state] == UIGestureRecognizerStateBegan) { 
     [self becomeFirstResponder]; 

     CGPoint point = [sender locationInView:[self myTableView]]; 
     NSIndexPath *indexPath =[[self myTableView] indexPathForRowAtPoint:point]; 

     UIMenuController *menuController = [UIMenuController sharedMenuController]; 

     UIMenuItem *editFruit = [[UIMenuItem alloc] initWithTitle:@"Edit" action:@selector(editFruit)]; 
     UIMenuItem *deleteFruit = [[UIMenuItem alloc] initWithTitle:@"Delete" action:@selector(deleteFruit)]; 

     [menuController setTargetRect:[[self myTableView] rectForRowAtIndexPath:indexPath] 
           inView:[self myTableView]]; 
     [menuController setMenuItems:[NSArray arrayWithObjects:editFruit, deleteFruit, nil]]; 

     [menuController setMenuVisible:YES 
           animated:YES]; 
    } 
} 

這是它結束的地方。

- (void)deleteFruit 
{ 
    NSLog(@"Delete."); 
} 

- (void)editFruit 
{ 
    NSLog(@"Edit."); 
} 

回答

1

它看起來像你有你需要的一切。

因此,在您的deleteFruit方法中,只需刪除您找到的indexPath處的項目,然後在tableview中調用-deleteRowsAtIndexPaths:withRowAnimation:即可。