ios - 如何将 ViewController 的 subview 转换为另一个 ViewController 的 subview

标签 ios objective-c uitableview uiview

我有两个 ViewController

一个 ViewControllers 包含一个 UITableView。另一个包含一个 UIButton

我已经以编程方式创建了一个 SubView。现在我想 SubView 包含 UITableViewViewController其他当我按下 UIButton 时。

我在网上搜索过,但没有找到任何稳定的解决方案。

目前我正在尝试这个:

   bodyView =[[UIView alloc]initWithFrame:CGRectMake(0,120,containerView.frame.size.width,120)];

bodyView.backgroundColor = [UIColor redColor];

CustomTableVC *tableVC = [[CustomTableVC alloc]init];

[tableVC willMoveToParentViewController:self];
[bodyView addSubview:tableVC.view];
[self addChildViewController:tableVC];
[tableVC didMoveToParentViewController:self];

[containerView addSubview:bodyView];

最佳答案

你不能。

您只能使用 UIViewControllerview 属性分配到第二个 UIViewController 关联的 UIView 中,这是不推荐的,因为 UIViewController 作为每个 MVC 模式包含很多 Controller 内容,包括填充 View 和解析输入/触摸,这在您(无需使用多个 View Controller )的情况下是一种开销。

您需要使用一个UIViewController。仅在其中添加 UITableView,仅在其中添加 UIButton。 您只使用一个 Controller 和多个 View 。

另一种方法,如果您不想更改代码,也可以使用 ContainerView。但在那种情况下,您需要为 UIButton 和 UITableView 创建单独的 ViewController。如果你想在 ViewController 之间获取数据,那将是一个巨大的痛苦,也是一个糟糕的软件设计,耦合太多,封装更少。

关于ios - 如何将 ViewController 的 subview 转换为另一个 ViewController 的 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30865399/

相关文章:

javascript - 调用 Objective-C 函数时将值返回给 JavaScript

ios - 从选择器中的选定行读取值

iphone - 如何在 iOS 上的 subview UITableView 上设置编辑按钮

ios - 关闭模态视图但保留数据

ios - UIWebView - NSStringWithFormat

ios - 我可以使用 UIRequiredDeviceCapabilities 将应用程序限制为 iPad 和 iPhone 6+ 吗?

objective-c - Objective C 中的实例缓存

iphone - UITableViewCell 不断被取消选择

ios - 共享应用程序 ios?

iphone - 如果当 iOS 应用程序在后台时 NSTimer 不起作用,我怎样才能让我的应用程序定期唤醒?