0

私の問題は簡単です:

  • UITabBar と 4 つの UITabBarItems を持つビューがあり、4 つの異なるサブビュー (4 つの異なる UIView クラス) が表示されます。
  • 最初の 3 つのビューをポートレートにし、最後のビューをランドスケープまたはポートレートにしたいと考えています。
  • そのために、私はセットアップしました

    -(BOOL)shouldAutorotateToInterfaceOrientation(UIInterfaceOrientation)interfaceOrientation{
         if (myTabBar.selectedItem.tag==4){
             return YES;
         } else {
             return ((interfaceOrientation==UIInterfaceOrientationPortrait)|(interfaceOrientation==UIInterfaceOrientationPortraitUpsideDown));
         }
     }
    

...4 番目のビューで画面を回転すると、問題なく動作します。

しかし...:

- 4 番目のビューが横向きのときに、最初の 3 つの UITabBarItems のいずれかをクリックすると、正しいビューに移動しますが、向きは横向きのままで、縦向きに切り替わりません。

注 : 最初の 3 つのビュー クラスのそれぞれに -(BOOL)shouldAutorotateToInterfaceOrientation.... を含めましたが、何も変わりませんでした。

言い換えれば、私の問題は、デバイスが回転したときではなく、デバイスを回転した後にビューの向きが更新され、別の UITabBarItem をクリックすることです。

ご協力いただきありがとうございます。

4

1 に答える 1

0

これについて考えた後、解決策は、既に読み込まれているが「shouldAutorotateToInterfaceOrientation」メッセージを受け取っていない他の 3 つの UITabBar ビューに NSNotification イベントをトリガーすることだと思います。

他のアイデアはありますか?

于 2012-05-05T19:58:08.140 に答える