如何在iOS 6上更改方向之前解除popover?

时间:2012-11-14 08:28:06

标签: ios6 orientation popover dismiss

有没有人知道如何在iOS 6上解除>方向更改前的弹出。 我尝试了以下内容:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {

    if ([self.popoverController isPopoverVisible]) {
        [self.popoverController dismissPopoverAnimated:NO];
    }
}

但它不适合我。轮换后,弹出窗口仍在那里。

- (BOOL) shouldAutoRotate
在我的viewController中没有调用

因为它在SplitViewController和NavController中。 我已经读过,我可以从这个容器子类化转发shouldAutorotate,但我不想因为不同的原因而这样做。 我不想在orientationchange之后解析popover(在didRotateFrom ...中),因为它很难看。

你有什么想法,我怎么能在iOS 6上改变方向之前解除弹出窗口?

2 个答案:

答案 0 :(得分:0)

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(deviceOrientationDidChange:)
                                             name:UIDeviceOrientationDidChangeNotification
                                           object:nil];

一旦旋转发生变化,这将完成,然后您可以在设备方向上执行所需操作。否则你需要监听视图控制器并在那里发送消息。

答案 1 :(得分:0)

试试这个

- (void)viewDidLayoutSubviews
{
    [popOverController dismissPopoverAnimated:YES];
}