在UIViewController中创建整个UIView

时间:2012-05-22 19:17:43

标签: objective-c uiview uiviewcontroller

我有一个UIViewController(controller1),它在UIView上显示一些UI按钮。当单击其中一个按钮时,我想实例化第二个UIViewController(controller2,它是一个完全不同的控制器类),然后以编程方式创建一些UIViews并将它们添加到由controller1管理的其中一个UIView。

所以,在controller1中,我想要以下代码:

- (void) someButtonPressed: (id)sender
{
    ViewController2* controller2 = [ [ ViewController2 alloc ] initWithNibName:nil bundle:nil ];
}

然后我想以编程方式在controller2中创建其他UIViews。理想情况下,我不会在controller1中有任何其他代码行(添加视图等)。我真的想要创建所有视图并将它们添加到controller2代码中的现有视图中。

我可以这样做吗?我已经尝试过将以下代码放在controller2中:

- (void)loadView
{

    NSLog(@"HPSViewEditorViewController loadView");

}

但它没有被调用。

我想在控制器2代码中封装控制器2的整个UIView层次结构,并且不希望用控制器2实例化之外的任何东西“混乱”控制器1。

感谢。

2 个答案:

答案 0 :(得分:0)

来自UIViewController Class Reference

  

视图控制器在请求view属性但当前为nil时调用此方法。此方法加载或创建视图并将其分配给视图属性。

在引用controller2.view之前不会调用-loadView。

答案 1 :(得分:0)

我会尝试像

这样的东西
[viewController1 presentModalViewController:viewController2 animated:YES];

这可以解决问题......