我有一个使用xib
文件构建的自定义视图。在这个自定义视图中,有一个UIView
,我想在其中添加一个静态UITableView
作为子视图。这里显示的UITableView
存在于storyboard
上,并与UITableViewController
相关联。我做了以下工作:
let vc = (UIStoryboard(name: "Main", bundle: nil))
.instantiateViewControllerWithIdentifier("tableController") as! TableController
vc.loadViewIfNeeded()
table = vc.table // this is an outlet, I'm sure it is not nil
table.delegate = vc
table.dataSource = vc
table.backgroundColor = UIColor.greenColor()
containerView.addSubview(table)
我可以在我的自定义视图中看到绿色背景,但是没有显示表格单元格。
我知道表的出口不是零,因为在调试时,如果我使用控制台下面的table
图标检查Quick Look
变量,我可以看到表。
更新
我意识到我的方法不是很好。
我实现了我想要的结果,使我的视图成为UITableViewDataSource
和UITableViewDelegate
的子视图,并以编程方式创建UITable
和必需的TableViewCell
。大量的密码!!
发布于 2017-01-23 10:48:39
这里显示的UITableView出现在故事板上,并与UITableViewController相关联。
在这种情况下,你所做的是完全非法的,这就是为什么它不起作用。不能只调用instantiateViewControllerWithIdentifier
,获取视图控制器的视图,并将该视图填充到与addSubview
的接口中。
毕竟,想想看:如果这样做,视图控制器会发生什么?它消失了,你就有了一个完全没有功能的观点。
为了使TableController成为self
(当前视图控制器)的子视图控制器,需要进行严格的舞蹈,而您并不是在跳这种舞蹈。
https://stackoverflow.com/questions/41813208
复制相似问题