Objective c UIPopover已重新定位,但位置不正确

Objective c UIPopover已重新定位,但位置不正确,objective-c,ios,ipad,uiview,uipopovercontroller,Objective C,Ios,Ipad,Uiview,Uipopovercontroller,我有以下代码来重新定位我的popover: - (void)repositionPopOver { if (self.targetButton) { [self.popoverController presentPopoverFromRect:self.targetButton.frame inView:self.view

我有以下代码来重新定位我的popover:

- (void)repositionPopOver {

    if (self.targetButton) {

        [self.popoverController presentPopoverFromRect:self.targetButton.frame
                                                inView:self.view
                              permittedArrowDirections:UIPopoverArrowDirectionAny
                                              animated:YES];
    }
}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    // Reposition the Popover after rotation
    [self repositionPopOver];
}
因此,现在当我旋转设备时,它确实会将我的popover重新定位,但位置不正确:


(来源:)


请注意,红色矩形是
targetButton

旋转时,您可以尝试先关闭popOver,然后重新创建它并根据方向显示它。 { 如果([YourPopUpViewControllerOBject].isPopOverVisible) { [[YourPopUpViewControllerOBject]解除PopupOveranimated:是]; } //基于方向显示PopOver的代码
}

旋转时,您可以尝试先关闭popOver,然后根据方向重新创建并显示它。 { 如果([YourPopUpViewControllerOBject].isPopOverVisible) { [[YourPopUpViewControllerOBject]解除PopupOveranimated:是]; } //基于方向显示PopOver的代码
}

检查didRotate是否真的接到了呼叫。在PopOver中,检查targetButton和popoverController是否为非零。请注意正在传递的“inView”参数。您的按钮是否存在于self.view中?检查是否确实调用了didRotate。在PopOver中,检查targetButton和popoverController是否为非零。请注意正在传递的“inView”参数。您的按钮是否存在于self.view中?