我正在努力添加自定义共享菜单。我按照这个stackoverflow post来实现这个也见过其他帖子。
它正在发挥作用。但是当我通过UITabBar项目操作进入这个UITableView控制器时,我遇到了调用canPerformAction
的问题,该操作将我导回到该视图。
我试图通过在stackoverflow上使用answer之一来解决这个问题。但是在这种情况下仍然没有调用canPerformAction
在这种情况下的任何帮助都是适用的。感谢
编辑:我的代码如下:
在viewDidLoad上,我正在关注
UIMenuItem *sendByEmailMenuItem = [[UIMenuItem alloc] initWithTitle:@"Send e-mail" action:@selector(sendEmail:)];
[[UIMenuController sharedMenuController] setMenuItems: @[sendEmailMenuItem]];
[[UIMenuController sharedMenuController] update];
这些是我用过的委托方法
- (BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
- (BOOL)tableView:(UITableView *)tableView canPerformAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender {
return NO;
}
- (void)tableView:(UITableView *)tableView performAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender {
}
- (BOOL) canPerformAction:(SEL)action withSender:(id)sender {
return (action == @selector(sendEmail:));
}
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void) sendEmail: (id) sender {
//do stuff
}
答案 0 :(得分:0)
解决了这个问题。如果有人需要,可以发布。
我在shouldShowMenuForRowAtIndexPath
行动
- (BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath {
[self becomeFirstResponder];
return YES;
}
这解决了我的问题。感谢