ControllerA、ControllerB、ControllerC、ControllerDという名前の4つのUIViewControllersがあります。
ControllerA は UINavigationStack の RootViewController です。
ControllerA *ca = [[ControllerA alloc]initWithNibName:@"ControllerA" bundle:nil];
UINavigationController *nv = [[UINavigationController alloc]initWithRootViewController:ca];
self.window.rootViewController = nv;
これがControllerBにプッシュされた後、それらは両方ともポートレイトにありますが、ここで問題が発生し、コントローラーCをランドスケープにしたいのです。
私は多くのコードを試しましたが、満足のいく解決策や機能する解決策はありましたが、ビューを角度に沿って変換することで回転させることができました -
[[UIApplication sharedApplication]]setStatusBarOrientation:UIInterfaceOrientationLandscapeRight
animated:YES];
self.view.transform = CGAffineTransformMakeRotation(M_PI/2);
しかし、今はControllerCにモーダルにControllerDを提示したいのですが、何らかの回転によって横向きになると、他のすべてのviewcontrollerの変換が妨げられます。
多くのことを行った後、文書化された方法でControllerCをランドスケープにするという同じ問題に戻りました。