私は、ナビゲーションバーにUIButtonを持つUIPopoverPresentationControllerを表示しようとしています。これはうまくいきましたが、iOS 11(iPad)以降、UIButtonはもう表示されません。興味深いことに、私のポップアップで、別のUIViewControllerをプッシュすることもできます。私が戻ってきたら、UIButtonが表示されます。 はここにポップアップを表示するコードです:UIPopoverPresentationControllerがiOS 11のrightBarButtonItemsを表示していません
- (IBAction)buttonPressed:(id)sender {
PopupViewController *popupController = [self.storyboard instantiateViewControllerWithIdentifier:@"PopupController"];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:popupController];
navController.modalPresentationStyle = UIModalPresentationPopover;
[self presentViewController:navController animated:YES completion:nil];
UIPopoverPresentationController *popController = [popupController popoverPresentationController];
CGRect rect = self.button.frame;
CGSize size = CGSizeMake(500, 400);
popController.sourceView = self.view;
popController.sourceRect = rect;
popupController.preferredContentSize = size;
}
、ここではUIButtonを表示するポップアップのコード、次のとおりです。
- (void)viewWillAppear:(BOOL)animated
{
UIButton *rightButton = [[UIButton alloc]init];
[rightButton setTitle: @"Press me" forState:UIControlStateNormal];
[rightButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
rightButton.frame = CGRectMake(0, 0, 120, 24);
UIBarButtonItem *rightButtonItem = [[UIBarButtonItem alloc] initWithCustomView:rightButton];
UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:flexible, rightButtonItem, nil];
self.navigationController.preferredContentSize = self.preferredContentSize;
}
誰もが何が起こっているのか知っていますか?ボタンがすぐに表示されるのはなぜですか?
私はそれを試みたが、それは問題を解決しなかった – user3421926