1

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

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

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

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

我可以这样做吗,怎么做?我试过简单地将以下代码放在控制器2中:

- (void)loadView
{

    NSLog(@"HPSViewEditorViewController loadView");

}

但它不会被调用。

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

谢谢。

4

2 回答 2

0

来自UIViewController 类参考

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

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

于 2012-05-22T19:54:00.633 回答
0

我会尝试类似的东西

[viewController1 presentModalViewController:viewController2 animated:YES];

这可以解决问题...

于 2012-05-22T20:00:09.070 回答