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

Ios 如何使用故事板从自定义uitableviewcell正确启动popover序列,ios,objective-c,iphone,ipad,Ios,Objective C,Iphone,Ipad,那么,当打开popover segue的按钮位于表视图中的自定义原型单元内时,如何使用故事板正确设置popover segue 它应该可以在iphone和ipad上使用 它应该在ipad上有正确的位置和定位 我认为最优雅的解决方案如下: if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { UIViewController *vc = (UIViewController *)segue.destinationViewCon

那么,当打开popover segue的按钮位于表视图中的自定义原型单元内时,如何使用故事板正确设置popover segue

  • 它应该可以在iphone和ipad上使用
  • 它应该在ipad上有正确的位置和定位

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

    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;
    }
    
    像往常一样创建一个从按钮到相应ViewController的序列

    打开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;
    }
    

    当序列图像在情节提要中开始时,这是否起作用?在这种情况下,我想我还记得这个解决方案的一个问题,因为锚必须首先在故事板中指定,并且我认为以这种方式编程更改它是不成功的。很抱歉,我使用的是容器视图控制器,这对我来说混淆了情况。这确实奏效了。非常感谢。