UIMenuController 不显示在第二个 UIViewController
Posted
技术标签:
【中文标题】UIMenuController 不显示在第二个 UIViewController【英文标题】:UIMenuController doesn't show in a second UIViewController 【发布时间】:2013-01-08 19:11:42 【问题描述】:我有两个 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 中工作。
谢谢
【问题讨论】:
【参考方案1】:如果我没有遗漏任何东西,我认为您应该,例如,将您的 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];
无论如何,在我看来,“呈现”位丢失了。
【讨论】:
这是我在编辑之前所做的,我认为我错了,因为我收到了这个错误d.pr/i/34wz 你完全正确,对不起。我的建议都不适用。可能是因为您使用 `[sharedController setMenuItems: nil];` 重置菜单而没有出现菜单吗?尝试删除该行... 如何显示第一个控制器的第二个控制器?它在导航控制器中吗?标签栏控制器?用它的观点做addSubview
?
我通过调用“segue”的 UIButton 显示它,然后出现第二个视图以上是关于UIMenuController 不显示在第二个 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章