繁体   English   中英

将带有控制器的视图添加到带有控制器的视图-正确的方法?

[英]Adding views with controllers to a view with controller - proper way?

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

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

还是其他方式?

还有另一个选项-容器视图控制器(带有addChildViewController方法),但是很难管理,所以我需要简单的方法。

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

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

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

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

这是处理viewControllers时绝对的最佳方法。 navigationController处理很多事情,例如内存管理,缓存视图以使其变得活泼。 当您退出视图控制器时,可以继续推动它们并弹出它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM