我正在使用此代码:

mediaLibraryPopover = [[UIPopoverController alloc]
                        initWithContentViewController:avc];
[self.mediaLibraryPopover presentPopoverFromRect:[theButton bounds]
                          inView:theButton
                          permittedArrowDirections:UIPopoverArrowDirectionAny
                          animated:YES];

我在Xcode 7中收到此警告:

最佳答案

您不再需要UIPopoverController来呈现 View Controller 。
相反,您可以将 View Controller 的modalPresentationStyle设置为UIModalPresentationPopover

您可以为此使用以下代码:

avc.modalPresentationStyle = UIModalPresentationPopover;
avc.popoverPresentationController.sourceView = theButton;
[self presentViewController:avc animated:YES completion:nil];



引用UIModalPresentationStyle Reference

您需要设置sourceViewbarButtonItem属性,否则它将崩溃,并显示以下消息:



为了正确 anchor 定弹出箭头,您还需要指定sourceRect属性。
avc.modalPresentationStyle                   = UIModalPresentationPopover;
avc.popoverPresentationController.sourceView = self.view;
avc.popoverPresentationController.sourceRect = theButton.frame;
[self presentViewController:avc animated:YES completion:nil];

有关更多详细信息,请引用sourceViewsourceRect

10-05 18:31