0

UITableViewからのデータを表示する がありますplistrowを使用して のデータを編集/削除する方法はありますUIMenuControllerか?

行を編集/削除するために従来のスワイプザ行を使用しても問題ありませんが、私はUISwipeGestureRecognizermy を表示するために使用していますsecondViewController- このビューコントローラーは、 my にデータを追加できる場所plistです。

が表示されますが、ここUIMenuItemから先に進む方法がわかりません。

誰かが私を案内していただければ幸いです。

これは mylongPressHandlerをトリガーする myUIMenuControllerです。

- (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.");
}
4

1 に答える 1

1

必要なものはすべて揃っているようです。

したがって、deleteFruit メソッドでは、見つけた indexPath のアイテムを削除し、テーブルビューで -deleteRowsAtIndexPaths:withRowAnimation: を呼び出すだけです。

于 2013-07-30T21:57:05.927 に答える