将子视图添加到另一个视图

时间:2012-04-15 22:30:03

标签: iphone xcode uiviewcontroller subview ios5

使用两个ViewControllers,MyView 1和MyView 2,是否可以从MyView1.m向MyView2添加子视图?

我试过了:

MyView2 * screen = [[MyView2 alloc]initWithNibName:nil bundle:nil];
[screen.view addSubView:mySubView];

但我的MyView 2新实例与MyView2上的'可见'ViewController无关,对吧?

为了澄清,正在显示的ViewController是MyView1。我希望MyView1能够将子视图添加到MyView2视图。

由于

4 个答案:

答案 0 :(得分:2)

我认为你让viewControllers混淆了视图,或者至少你的问题是。也许这就是你要找的东西 -

MyViewController2 *myViewController2 = [[[MyViewController2 alloc] initWithNibName:nil bundle:nil] autorelease];

[myViewController2.view addSubView:mySubView];
// add any other views to myViewController2's view

[self.view addSubView:myViewController2.view]; // adding the view to VC1's view

如果您希望能够在MyViewController1中继续添加内容,则应将myViewController2或其视图声明为保留属性。

答案 1 :(得分:1)

您可以让MyView1控制器在应用程序的公共对象中保存一些信息,以便当MyView2重新出现时,可以根据需要将子视图添加到其视图中。

答案 2 :(得分:0)

假设MyView2是UIViewController的子类,则viewcontroller本身没有addSubView:方法。相反,您希望将subView添加到视图控制器的view,如下所示:

[screen.view addSubview:mySubView];

答案 3 :(得分:0)

试试这个,

[MyView1.view addSubView:MyView2];
[self.view addSubview:MyView1];