我有一个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。
感谢。
答案 0 :(得分:0)
来自UIViewController Class Reference:
视图控制器在请求view属性但当前为nil时调用此方法。此方法加载或创建视图并将其分配给视图属性。
在引用controller2.view之前不会调用-loadView。
答案 1 :(得分:0)
我会尝试像
这样的东西[viewController1 presentModalViewController:viewController2 animated:YES];
这可以解决问题......