首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >How to SubView a ViewController to a SubView of another ViewController

How to SubView a ViewController to a SubView of another ViewController
EN

Stack Overflow用户
提问于 2015-06-16 18:45:36
回答 3查看 368关注 0票数 1

我有两个ViewController

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

我已经创建了一个SubView Programmatically.Now I want to SubView ViewController,当我按下UIButton时,它包含了other中的UITableView

我在网上找遍了,但找不到任何稳定的解决方案。

目前我正在尝试这样做:

代码语言:javascript
复制
   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];
EN

回答 3

Stack Overflow用户

发布于 2015-06-16 18:49:43

你不能。

你只能使用你的UIViewControllerview属性来赋值到你的第二个UIViewController中关联的UIView中,这是不推荐的,因为根据MVC模式,UIViewController包含了批量控制器的东西,包括填充视图和解析输入/触摸,这在你的情况下(不需要使用多个视图控制器)是一个开销。

您需要使用一个UIViewController。仅在其中添加UITableView,并在其中仅添加UIButton。您只需使用一个控制器和多个视图。

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

票数 1
EN

Stack Overflow用户

发布于 2015-06-16 19:34:34

我试过这个,它对我很有效。

代码语言:javascript
复制
@IBAction func moveToOther() { 


var otherController = OtherViewController()

        var bodyView = UIView(frame: CGRectMake(0,120, self.view.frame.size.width, 120))
        bodyView.backgroundColor = UIColor.redColor();
        bodyView.layer.borderWidth = 1.0

        let tblCntrl = UITableViewController()
        bodyView.addSubview(tblCntrl.tableView)
        bodyView.clipsToBounds = true
        otherController.addChildViewController(tblCntrl)
        tblCntrl.didMoveToParentViewController(otherController)

        otherController.view.addSubview(bodyView)

        self.navigationController?.pushViewController(otherController, animated: true)

}
票数 0
EN

Stack Overflow用户

发布于 2015-06-16 20:25:24

您应该只使用一个同时包含表视图和UIButton的视图控制器。默认情况下,隐藏表视图。只需隐藏该按钮,并在单击该按钮时显示表格视图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30865399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档