众所周知,Cocoa Touch中的表视图是最简单的框架元素之一。为方便起见,Apple为我们提供了一个很好的视图控制器类来封装vc中的表视图的功能,UITableViewController
。
同时,我们有时希望利用表格视图的功能而不占用整个屏幕。但是,似乎没有办法通过继承UITableViewController
来实现这一点。相反,我必须连接表视图并手动订阅UITableViewDelegate
和UITableViewDataSource
。如果我尝试继承UITableViewController
,我的应用程序会崩溃,甚至可以将视图放在屏幕上...
我的问题是,有什么我想念的吗?在继承UITableViewController
时,我将自定义表视图连接到UITableViewController
中的tableView属性。还有什么我必须要做的吗?
答案 0 :(得分:8)
UITableViewController
仅在UIViewController
上添加了一些小便利:它创建并定位表格视图,挂钩代表和& datasource(通常为自身)将视图控制器editing
属性传递给表,并在视图出现时执行几个有用的UI位。 (详见[文档] [1]。)
以上所有内容都是A)为了拥有非全屏表而需要更改的东西,或者B)你可以在一行或两行中做的事情,以及{{ 1}}只是为了您的方便。对于这样的情况,最好使用自己的UITableViewController
子类。
答案 1 :(得分:2)
第1步:子类UIViewController
而不是UITableViewController
MyTableViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
步骤2:使用界面构建器删除tableView和自定义视图
步骤3:在IBOutlet
头文件中将tableView属性声明为MyTableViewController
,并将其绑定到界面构建器中的tableView
恕我直言,这个过程会给你更多的灵活性。