UINavigationController
ルートUIViewController
(「ルート」)があります。
ルート ビュー コントローラーは別のUIViewController
「子」をプッシュします。「子」UIViewController
が画面上にある場合、デバイスを回転させ、それに応じて「ルート」View Controllerのサイズが変更されることを期待していますが、これは起こっていません。ルート ビュー コントローラーにブレークポイントを配置した後:
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
}
サイズが正しくなく、ルート ビュー コントローラーが変更に適切に対応していないことがわかります。
この動作を経験した人はいますか?
コードは次のとおりです。
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
/// The size is wrong if this view controller is off screen
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
これは、デバイスを回転させた後のサイズの NSLog の印刷画面です。これはシミュレーターのものですが、動作はデバイス上で同じです。