Iphone UIMenuController不';无法在第二个UIViewController中显示

Iphone UIMenuController不';无法在第二个UIViewController中显示,iphone,objective-c,ios,uiviewcontroller,uimenucontroller,Iphone,Objective C,Ios,Uiviewcontroller,Uimenucontroller,我有两个UIViewController,一个是主控制器,通过这个按钮可以转到第二个。在SecondView.m中,我有以下代码: - (IBAction)showpopup:(id)sender { [self becomeFirstResponder]; UIMenuController *sharedController = [UIMenuController sharedMenuController]; UIMenuItem *x2 = [[UIMenuI

我有两个UIViewController,一个是主控制器,通过这个按钮可以转到第二个。在SecondView.m中,我有以下代码:

    - (IBAction)showpopup:(id)sender {
    [self becomeFirstResponder];
    UIMenuController *sharedController = [UIMenuController sharedMenuController];
    UIMenuItem *x2 = [[UIMenuItem alloc] initWithTitle:@"2x2" action: @selector(mat)];
    UIMenuItem *x3 = [[UIMenuItem alloc] initWithTitle:@"3x3" action: @selector(mat)];
    UIMenuItem *x4 = [[UIMenuItem alloc] initWithTitle:@"4x4" action: @selector(mat)];
    UIMenuItem *x5 = [[UIMenuItem alloc] initWithTitle:@"5x5" action: @selector(mat)];

    NSArray *menuArray = [NSArray arrayWithObjects: x2,x3,x4,x5, nil];


    CGRect drawRect = [sender convertRect:[sender bounds] toView: self.view];
    [sharedController setTargetRect:drawRect inView: self.view];

    [sharedController setMenuItems:menuArray];
    [sharedController setMenuVisible:YES animated:YES];
    [sharedController setMenuItems: nil];
}

-(BOOL)canBecomeFirstResponder{
    return YES;
}

-(int)mat:(id)sender{
    return 0;
}
该按钮链接为“内部触摸”,但当我运行UIMenuController时,该按钮不会显示。 完全相同的代码在主UIViewController中工作


谢谢

如果我没有遗漏任何内容,我认为您应该,例如,将您的sharedController.view作为子视图添加到您的mainController.view,例如(假设在您的主控制器中定义了“showpopup”):

或者,您可以以模式显示sharedController(替换上面的
addSubview
行):


在任何情况下,在我看来,“呈现”位都丢失了。

这是我在编辑之前所做的,我认为我错了,因为我得到了这个错误。对不起,你完全正确。我的两个建议都不适用。可能是因为您正在使用“[sharedController setMenuItems:nil];”重置菜单,所以菜单没有出现?尝试删除该行…如何显示第一个控制器的第二个控制器?它在导航控制器中吗?选项卡栏控制器?通过对其视图执行
addSubview
,我通过一个调用“segue”的ui按钮来显示它,然后出现第二个视图
- (IBAction)showpopup:(id)sender {
    [self becomeFirstResponder];
    UIMenuController *sharedController = [UIMenuController sharedMenuController];
    ...
    [sharedController setMenuItems:menuArray];
    [sharedController setMenuVisible:YES animated:YES];
    [sharedController setMenuItems: nil];
    [self.view addSubview:sharedController.view];
}
[self presentViewController:sharedController animated:YES completion:nil];