3

iOS 6で方向を変更する前にポップオーバーを閉じる方法について誰か考えていますか?私は次のことを試しました:

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

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

しかし、それは私にとってはうまくいきません。回転後もポップオーバーは残ります。

- (BOOL) shouldAutoRotate

SplitViewController と NavController にあるため、viewController では呼び出されません。このコンテナーからサブクラス化して shouldAutorotate を転送できることを読みましたが、さまざまな理由でこれを実行したくありません。醜いので、(didRotateFrom... で) orientationchange の後にポップオーバーを閉じたくありません。

iOS 6 で向きを変更する前にポップオーバーを閉じる方法を教えてください。

4

2 に答える 2

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

回転が変更されると、これが行われ、デバイスの向きで必要なことを行うことができます。それ以外の場合は、ビュー コントローラーでリッスンし、そこにメッセージを送信する必要があります。

于 2013-09-14T23:23:22.870 に答える
0

これを試して

- (void)viewDidLayoutSubviews
{
    [popOverController dismissPopoverAnimated:YES];
}
于 2016-05-05T07:14:59.157 に答える