美文网首页
TableView与其他控件(View)混合显示

TableView与其他控件(View)混合显示

作者: alanhoo74 | 来源:发表于2022-02-27 19:39 被阅读0次

之前学习TableView的时候,都是把它作为唯一的View呈现的,所以整个Scene的View Controller就是TableViewController。

如果需要在界面中集合其他的控件(View),整个ViewController就不能采用TableViewController了,同时也不能让这个View Controller实现DataSource或者Delegate,因为还有其他的控件。

解决方案就是引入一个 ContainerView,将其通过Segue指向另外一个TableViewController,在后者中,显示一个表格。结构如下:


示意图.png

在ViewController初始化后,会自动调用Segue,所以可以在对应的prepare(for segue: UIStoryboardSegue, sender: Any?)中,采用互相引用的方式,设置Table View Controller,将其父控制器设置为View Controller ( ContainerView 只是一个桥梁),这样 TableViewController 就可以在对应的表格类方法中,引用View Controller中各类Model数据,显示对应的表格了。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "initTableViewController" {
            TableViewController = segue.destination as! TableViewController
            TableViewController.containerViewController = self
        }
} 

这里 Segue的identifier 是 initTableViewController。

这样显示的结果就是


效果图.png

相关文章

网友评论

      本文标题:TableView与其他控件(View)混合显示

      本文链接:https://www.haomeiwen.com/subject/taghrrtx.html