当ipad方向改变时,UIPopoverController消失

时间:2012-08-14 12:17:08

标签: iphone xcode uipopovercontroller

单击按钮时弹出窗口显示正确。

当方向发生变化时,它会消失。留下黑色的上边栏。

以下是参考图片。

任何人都可以建议,为什么会这样?

enter image description here

enter image description here

我的代码:

EBFirstViewController *firstViewController = [[EBFirstViewController alloc]init];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:firstViewController];
    navigationController.delegate = self;

    UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:navigationController];
    self.popoverController = popover;
    popoverController.delegate = self;

    [popoverController setPopoverContentSize:CGSizeMake(320.0f, 527.0f)];
    [popoverController presentPopoverFromRect:settingsBtn.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

1 个答案:

答案 0 :(得分:0)

以下代码有助于解决您的问题。

- (void)application:(UIApplication *)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration {
    // a cheat, so that we can dismiss all our popovers, if they're open.

    if (ObjPopover) {
        // if we're actually showing the menu, and not the about box, close out any active menu dialogs too
        if (menuPopoverVC && menuPopoverVC == ObjPopover.contentViewController)
            [menuPopoverVC.popoverController dismissPopoverAnimated:YES];
        [menuPopoverPC dismissPopoverAnimated:YES];
        menuPopoverPC = nil;
    }
}


- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
    // the user (not us) has dismissed the popover, let's cleanup.
    ObjPopover = nil;
}