如何使用故事板从自定义 uitableviewcell 正确启动 popover segue

How to correctly start a popover segue from a custom uitableviewcell using the storyboard

那么,当打开它的按钮位于 table 视图中的自定义原型单元格内时,如何使用情节提要正确设置弹出窗口转场?

  1. 它应该适用于 iphone 和 ipad
  2. 它应该有正确的位置并锚定在 ipad

我认为最优雅的解决方案如下:

像往常一样从按钮创建一个 segue 到适当的 ViewController

打开 segue 并将锚点设置到 table 视图(从圆圈拖动到视图)。

在准备 segue 添加以下内容:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    UIViewController *vc = (UIViewController *)segue.destinationViewController;
    UIPopoverPresentationController *ppc = vc.popoverPresentationController;
    UIButton *button = (UIButton *)sender;
    ppc.sourceRect = button.frame;
    ppc.sourceView = button.superview;
}