我正在以编程方式创建我的视图层次结构,如下所示:
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];
这两个 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
所以我的问题是,我该如何摆脱它们?或者更一般地说,您如何使用自动布局以编程方式设置窗口和视图层次结构?
我发现有关以编程方式设置窗口的文档非常模糊。即使我观看了所有三个关于此事的 WWDC 视频,我也无法掌握如何做到这一点。
编辑:我遇到的问题似乎只与新的 iOS 7 有关。由于它在 NDA 下,我将把这个讨论转移到指定的 Apple 开发者论坛。