使用控制器将控制器视图添加到视图中 - 正确的方法?

时间:2013-01-29 05:49:19

标签: iphone ios objective-c model-view-controller uiviewcontroller

我必须在主视图(带控制器)中添加几个视图(每个视图都有自己的控制器)。我正在关注MVC。是否应该在视图类或控制器类中编写添加这些子视图的代码?还有,什么是正确的方式,

MyViewController1 *myViewController1 = [[MyViewController1 alloc] init];
[myMainViewController.view addSubview:myViewController1.view];

或者,其他一些方式?

还有另一种选择 - 容器视图控制器(使用addChildViewController方法),但这很难管理,所以我需要简单的方法。

2 个答案:

答案 0 :(得分:0)

如果要将视图控制器添加到另一个视图控制器的视图中,则需要使用容器包含。您可以在IB中使用容器视图执行此操作。这比在代码中制作自定义容器控制器更容易。

答案 1 :(得分:0)

绝对最好的方法是根据其功能维护ViewControllers(例如,一个可能是dashboardView可能是settingsView)。现在,当从一个视图控制器移动到另一个视图控制器时,使用navigationController

我遵循的做法是在您的应用启动时在navigationController中声明一个appDelegate,然后继续重复使用。示例 -

YourAppDelegate *delegate=(YourAppDelegate *)[[UIApplication sharedApplication] delegate];
MyViewController1 *myVC = [[ FLOHome alloc ]initWithNibName:@"MyViewController1" bundle:[NSBundle mainBundle]];
[delegate.navigationController pushViewController:myVC animated:NO];

这是处理viewControllers时的绝对最佳方式。 navigationController处理很多内容,比如内存管理,缓存视图以使它们变得活泼。您可以继续推动viewcontrollers并在退出时弹出它们......