私のアプリケーションでは、テーブル ビュー セルをタップするときにメニュー コントローラーを表示する必要があります。そのメニューを示しています。同様に、すべてのアクションが正常に実行されています。今までよかった。
私が直面している小さな問題の 1 つは、セル (または他のセル) をもう一度タップすると、メニュー コントローラーを非表示にできないことです。私が使用しているコードは次のとおりです。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
UIMenuController* menuController = [UIMenuController sharedMenuController];
if ([menuController isMenuVisible])
{
[menuController setMenuVisible:NO animated:YES];
}
else
{
[self becomeFirstResponder];
self.selectedIndex = indexPath.row;
[menuController setTargetRect:[tableView rectForRowAtIndexPath:indexPath] inView:tableView];
[menuController setMenuItems:@[
[[UIMenuItem alloc] initWithTitle:@"Play" action:@selector(playVideo:)],
[[UIMenuItem alloc] initWithTitle:@"Edit" action:@selector(editVideo:)],
[[UIMenuItem alloc] initWithTitle:@"Delete" action:@selector(deleteVideo:)],
[[UIMenuItem alloc] initWithTitle:@"Share" action:@selector(shareVideo:)],
[[UIMenuItem alloc] initWithTitle:@"Cancel" action:@selector(cancelMenu:)]
]];
menuController.arrowDirection = UIMenuControllerArrowUp;
[menuController setMenuVisible:YES animated:YES];
}
}
テーブルビューのセルを再度タップしても非表示にならない理由がわかりません。私がやっている間違いは何ですか?