UIMenuController не отображается во втором UIViewController
У меня есть два 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];
В любом случае, мне кажется, что бит "представления" отсутствует.