次のようにプログラムでビュー階層を作成しています。
UIWindow* window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIViewController1* viewController1 = [[UIViewController1 alloc] init];
UIViewController2* viewController2 = [[UIViewController2 alloc] init];
UINavigationController* navigationController = [[UINavigationController alloc] init];
[navigationController setViewControllers:@[viewController1, viewController2] animated:NO];
[window setRootViewController:navigationController];
[window makeKeyAndVisible];
2 つの VC は、どちらの場合も自動レイアウトを使用する XIB からロードされます。すべて問題ないように見えますが、実際に実行すると、コンソールにpo [[UIWindow keyWindow] _autolayoutTrace]
心配な警告が表示されます。AMBIGUOUS LAYOUT
*<UIWindow:0xc63bec0>
| *<UILayoutContainerView:0xd3d79b0> - AMBIGUOUS LAYOUT
| | *<UINavigationTransitionView:0xd3d8b60> - AMBIGUOUS LAYOUT
| | | *<UIViewControllerWrapperView:0xd566c00> - AMBIGUOUS LAYOUT
| | | | *<UIView:0xc66b290> - AMBIGUOUS LAYOUT
| | | | | *<UIView:0xc66b0e0> - AMBIGUOUS LAYOUT
| | | | | | *<MKMapView:0xd504800> - AMBIGUOUS LAYOUT
だから私の質問は、どうすればそれらを取り除くことができますか? または、より一般的には、自動レイアウトを使用してウィンドウとビューの階層をプログラムで設定するにはどうすればよいでしょうか?
ウィンドウをプログラムで設定するという問題について、ドキュメントは非常に曖昧です。この問題に関する 3 つの WWDC ビデオをすべて見たにもかかわらず、これを行う方法を把握できませんでした。
編集: 私が抱えている問題は、新しい iOS 7 にのみ関連しているようです。NDA の下にあるため、この議論は指定された Apple Developer Forums に移動します。