2013-01-08 60 views
0

我有两个UIViewController,一个是主要的,从这个槽到第二个按钮。在SecondView.m我有以下代码:UIMenuController不显示在第二个UIViewController中

- (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中工作。

感谢

回答

0

如果我不缺什么,我想你应该,例如,作为一个子视图添加sharedController.view您mainController.view,例如(假设`showpopup在你的主控制器定义):

- (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]; 
} 

,或者你可以提出模态的sharedController(更换上述addSubview线):

[self presentViewController:sharedController animated:YES completion:nil]; 

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

+0

我应该在哪里添加此代码? – iAndrew

+0

请参阅我的编辑... – sergio

+0

这是我在编辑之前所做的,我以为我错了,因为我得到这个错误http://d.pr/i/34wz – iAndrew

相关问题