如何在2个UIViewControllers上使用autoresize?

时间:2013-04-12 02:26:41

标签: iphone ios uiview uiviewcontroller

我有2 UIViewController s:

UIViewControllers1
UIViewControllers2

UIViewControllers2.view作为子视图添加到UIViewControllers1.view

问题在于UIViewControllers2.viewUIViewControllers1.view调整大小时UIViewControllers1 setFrame:frame不希望自动调整大小。{/ p>

[UIViewControllers1.view setAutoresizesSubViews:YES]
[UIViewControllers1.view setAutoResizeMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)]
[UIViewControllers1.view addSubview:UIViewControllers2.view];

如何解决?

1 个答案:

答案 0 :(得分:0)

嗯,部分问题是这是非法的:

[UIViewControllers1.view addSubview:UIViewControllers2.view];

您绝不能只是将一个视图控制器的视图添加到另一个视图控制器的视图中。只有一种方法允许在内置的父子结构之外(UINavigationController,UITabBafController,UIPageViewController),这就是你创建自己的复杂定制的时候亲子结构 - 而你并没有这样做。这样做所需的架构在我的书中描述:

http://www.apeth.com/iOSBook/ch19.html#_container_view_controllers

要清楚,将视图添加到另一个视图没有任何错误!使视图来来往往的能力对iOS至关重要。错误的是你不能将视图控制器的视图添加到另一个视图,除了在父子视图控制器架构下,内置或自定义。