0

デバイスの向きの変更をロックするにはどうすればよいですか?

使ってみました

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
  return UIInterfaceOrientationLandscapeRight;
}

この

- (void)viewDidAppear:(BOOL)animated
{
    [self shouldAutorotateToInterfaceOrientation: UIInterfaceOrientationLandscapeRight];
    [super viewDidAppear:animated];
}

しかし、デバイスを使用しても何も機能しません。アプリをシミュレーターで実行すると、うまく機能します。

シミュレータにはiOS6とデバイス5.1.1があります。私が間違っているのは何ですか?

4

6 に答える 6

3

これを試して:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
  return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

このメソッドは、「この方向に回転する必要があります:interfaceOrientation」という質問に答えると、YESまたはNOを返します。したがって、YESまたはNOを返す必要がありますUIInterfaceOrientationLandscapeRight-BOOLではありません。ただし、比較を使用して、上記のようにBOOLを返すことができます。

于 2013-02-13T10:24:55.373 に答える
0

プロジェクトを開き、プロジェクト ファイルを選択し、概要セクションに移動して、[サポートされているインターフェイスの向き] サブセクションで目的のインターフェイスの向きを設定します。Good Luck! (iOS 6.x 用)

于 2013-02-13T10:26:41.330 に答える
0

プロジェクトの .plist ファイルに、サポートされているインターフェイスの向きを追加します

アイテムをLandscape(右ホームボタン)に設定します

于 2013-02-13T10:27:24.777 に答える
0

1つのviewcontrollerに対してのみ実行したい場合は、次のいずれかで実行できます

- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}

またはによって

//deprecated
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (BOOL)shouldAutorotate {
return self.interfaceOrientation == UIInterfaceOrientationPortrait;
}

アプリ全体に設定する場合は、必ず Info.plist ファイルを変更して追加してくださいSupported Interface Orientations

于 2013-02-13T10:29:06.600 に答える
0

.mファイルに次の行を追加するだけです

#define IOS_OLDER_THAN_6 ( [ [ [ UIDevice currentDevice ] systemVersion ] floatValue ] < 6.0 )
#define IOS_NEWER_OR_EQUAL_TO_6 ( [ [ [ UIDevice currentDevice ] systemVersion ] floatValue ] >= 6.0 )

.m次に、ファイルに次のメソッドを追加する必要があります

#ifdef IOS_OLDER_THAN_6

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
   return (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
#endif

#ifdef IOS_NEWER_OR_EQUAL_TO_6

- (NSUInteger)supportedInterfaceOrientations
{
   return UIInterfaceOrientationMaskLandscapeRight;
}
#endif
于 2013-02-13T10:30:34.077 に答える