1

UIPageViewControllerユーザーが現在のインターフェイスの向きをサポートしていない新しいView Controllerにスキミングした場合、デバイスを回転させようとしています。VC がモーダルにプッシュされた場合とほぼ同じ動作を取得したいと考えています。

例: の現在の VC はUIPageViewControllerすべてのインターフェイスの向きをサポートし、ユーザーは次の VC にスキミングします。この VC は横向きでのみ表示されます。

テストにはデフォルトの Page-Base-Application-Template を使用し、shouldAutorotateToInterfaceOrientation次のように DataViewController のメソッドを実装しました。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) {
        return YES;
    }

    if ([self.dataObject isEqualToString:@"February"]) {
        return NO;
    }

    return YES;
}

私の予想では、2 月のビュー コントローラーに目を通すと、画面は横向きに回転しますが、縦向きのままです。興味深いのはshouldAutorotateToInterfaceOrientation、february-VC に目を通すと、 が呼び出されて NO が返されることです。

また、方向を確認して遊んでいましたRootViewControllerが、うまくいきませんでした。

私は今、アイデアがありません。どんなアドバイスでも大歓迎です、ありがとう!

4

1 に答える 1

0

興味深いのは、shouldAutorotateToInterfaceOrientation が呼び出され、february-VC に目を通すと NO が返されることです。

その場合、UIPageViewController をサブクラス化することが唯一のアプローチになることをお勧めします。明らかに、応答がshouldAutorotateどうあるべきかを認識しており、その応答に同意しない場合は、別の応答を提供する必要があります。

ただし、UIPageViewController がこのように動作することを聞いても驚きません。結局のところ、UINavigationController は同じように動作します。ビュー コントローラーをナビゲーション コントローラーのスタックにプッシュし、そのビュー コントローラーがデバイスの現在の向きを許可しない場合、インターフェイスビューコントローラーが許可する方向に回転しません。これを回避するには、デバイスを強制的に回転させるビュー (以前はモーダル ビューと呼ばれていたもの) を表示します。

于 2011-12-22T16:31:23.117 に答える