0

ベースのアプリケーションがあり、tabBar画面全体の上にカスタムビューを表示したいのですが(モーダルビューとしてではありません)、次のようにします。

[self.view.window addSubview:self.myViewController.view];

私がこれを行った理由は、この方法のビューが上に配置されているためUITabBarです。

とにかくビューがうまく表示され、私が望むように画面全体をカバーします。しかし問題がある。デバイスを回転させると、この上面図は回転しませんが、下のビューは回転します。

私は運の有無にかかわらずテストiOS5しました。iOS6このコードもデリゲートに入れました:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return UIInterfaceOrientationMaskAll;
}

同様のコードがmyViewControllerのビューにあります。

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

ビューが回転しないだけです...?

4

2 に答える 2

0

私の知る限り、ウィンドウの最初のサブビューのみが回転イベントを取得します。ウィンドウに別のビュー(ビュー)を追加しているため、回転イベントの伝播を自分で処理する必要があります。

非常に迅速なヘルプを提供するために、次の実装を確認してください:AGWindowView(2016年以降は維持されていません)

于 2013-02-05T09:44:31.933 に答える
0

UIWindowのrootControllerを設定できます。例えば:

fileprivate(set) var bottonOverlayWindow = UIWindow()

self.bottonOverlayWindow.rootViewController = self; 

//'self'は、UIWindowビューを追加したViewControllerになります。したがって、ViewControllerが方向を変更するたびに、ウィンドウビューもその方向を変更します。

問題が発生した場合はお知らせください。

于 2019-09-13T12:20:11.853 に答える