1

デプロイターゲットとして5.0、ベースSDKとして6.1のアプリがあり、iOS6.xデバイス/シミュレーターですべて正常に動作します。しかし、5.xでは私のビューは回転していません。私はグーグルでこれに関するいくつかのStackoverflowの投稿を見つけましたが、そのすべてに頭と尾を見つけることができません。使用しているさまざまなViewControllerの独自のサブクラスを実装する必要があると思いますが、どちらが正しいですか?

アプリデリゲートdidFinishLaunchingWithOptionsでは、これを使用してアプリを作成します。

self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[viewController1, viewController2, viewController3];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];

私はviewController1を次のように作成します。

viewController1 = [[UINavigationController alloc] initWithRootViewController:[[SearchVC alloc] initWithNibName:@"SearchVC_iPhone" bundle:nil]];

shouldAutorotateToInterfaceOrientationSearchVC_iPhoneビューコントローラーで実装を試み、そのサブクラスでもサブクラス化とUINavigationController実装を試みましたが、うまくいかずshouldAutorotateToInterfaceOrientation、ここで推測しているだけです。

このことを知っている人は誰でもここで私を助けてくれますか?これをiOS 5.xでも機能させるには何をする必要がありますか?

ありがとう
Søren

4

3 に答える 3

2

IOS5では、

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return YES;
}

IOS6では、

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}
于 2013-03-04T09:50:55.430 に答える
1

解決しました!! 問題はrootViewControllerです。rootViewControllerにshouldAutorotateToInterfaceOrientationを実装する必要があります。そうすると、すべてのサブビューが正常に動作し始めます。そこで、shouldAutorotateToInterfaceOrientationを実装する独自のUITabBarControllerサブクラスを作成し、それをrootViewControllerとして設定しました。

于 2013-03-04T10:18:33.210 に答える
0

私はアプリケーション(Xcode 4.5 iOS 6)で作業していますが、4.5以降のソフトウェアバージョンとデフォルトのiPhone5がインストールされているデバイスと互換性がある必要があります。

新しいiOS6の変更には、自動回転モードが付属していることを知っています。

デバイスの電源を入れると、「iPhone Simulator 6.0」アプリケーションは正常に動作しますが、「iPhoneSimulator5.0」を実行すると回転の問題が発生します。

私は、iOS6と古い方法(非推奨)からiOS5にローテーションする新しい方法とともにコードを追加しました。

したがって、rotateメソッドを探します。

#pragma mark - Rotate Methods iOS 5




- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation

{{

if (UIInterfaceOrientationIsPortrait(interfaceOrientation))

{

    //Code Here

}


if (UIInterfaceOrientationIsLandscape(interfaceOrientation))

{

    //Code Here

}

return YES;

}

#pragma mark - Rotate Methods iOS 6
  • (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

    {{

if(UIInterfaceOrientationIsPortrait(toInterfaceOrientation))

    {

        //Code here

    }

if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation))

    {

         //Code here

    }

}

于 2013-03-04T10:07:22.837 に答える