2016-07-25 13 views
3

私は肖像画に回転し、その後、最初の風景の中に実行される肖像画でのUIViewControllerを設定したい、私はポートレートのみで向きを設定する方法は?

- (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation { 
    return UIInterfaceOrientationPortrait; 
} 

- (UIInterfaceOrientationMask)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskPortrait; 
} 

- (BOOL)shouldAutorotate { 
    return [UIApplication sharedApplication].statusBarOrientation != UIDeviceOrientationPortrait; 
} 

を追加しようとしました。しかし、私は横に自分の携帯電話を取るときは、こののUIViewControllerを入力し、

が、私は、私はそれがすぐに肖像画を表示したい、それは風景を示したくない、

は、任意の誤った設定はありますか?私はVCBの viewDidAppearで "VCB"

から、それは現在、エラーのViewController "VCA" と呼ばれる

EDIT

、私はその後、VCAがで表示されます

[self presentViewController:vc animated:NO completion:nil];

と呼ばれます風景(vcBがランドスケープの場合)、

wのような遅れ:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
    [self presentViewController:vc animated:NO completion:nil]; 
}); 

それは肖像画を表示しますが、私はなぜそれが起こるのかわかりません!

ANSWER

は最後に、私は、根本的な原因を発見しました!

  1. 私はアプリを起動したとき、それは

  2. 打ち上げ後、ポートレートモードのまま、VCBは最初に私が呼ばれるVC、風景の中に

  3. 電話滞在なので、ときVCBでviewDidAppearで、それは がviewDidAppearで同時に風景

  4. に回転呼んで、私はまた呼んpresent:vcA

  5. ので、現在、ビューの両方

  6. が次に悪い状況が起こった風景と現在 VCA(ポートレートにすべきである!!)まで回転しなければなりません!

ソリューション

ちょうど無効 "VCB" の最初の打ち上げのために回転させ、その後、viewDidAppearで、それだけですべての多くpresent:vcA

感謝を呼び出します!

+0

あなたが肖像画であることをビューを強制的にviewWillAppearを使用してみましたか? –

+0

はい、私は試しました。それは正しくポートレートに回転することができますが、それはまた、風景に最初に表示されます、私はどのように横長ビューを無効にすることができますか?私は景色を見せたくありませんが、それはサポートされていません! – Devin

+0

@Devinはこの回答を多分助けることができますhttps://stackoverflow.com/questions/38308919/unable-to-force-uiviewcontroller-orientation/38308987#38308987 –

答えて

3
  1. が唯一の肖像画に、デバイスの向きを確認し、展開情報

  2. を探すXcodeプロジェクトの一般設定に移動します。

    enter image description here

OR

- (void)viewWillAppear:(BOOL)animated { 

    [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger: UIInterfaceOrientationPortrait]forKey:@"orientation"]; 
} 

- (BOOL)shouldAutorotate{ 
    return NO; 
} 
+0

私は現在のviewcontrollerにポートレートを設定したい、一般的な変更は私には適切ではない、私はviewWillAppearに関数を追加しようとしているが、それでもまだ風景が最初に表示されている! – Devin

+0

更新された回答を確認してください –

+0

はい、私もこれを試しました!それは風景で停止します。私は何かが起こるかもしれないことを発見した、私はすぐにそれを追加します! – Devin

2
  1. あなたのプロジェクト - >標的 - >プロジェクト - >一般
  2. チェックを選択し、(展開中)のスクリーンショットに応じてオフに
  3. フルスクリーンが必要かどうかを確認してください。そうしないと、アプリをアプリストアに送信できませんe。

enter image description here

+0

これを行うことは意味をなさない... –

関連する問題