Objective-C / iOS:为自定义视图创build子类UITableViewController

众所周知,Cocoa Touch中的表格视图是其中最为重要的框架元素之一。 为了方便起见,苹果给了我们一个很好的视图控制器类来封装一个表格视图的function, UITableViewController

同时,有时我们希望利用表视图的function,而不占用整个屏幕。 但是,通过UITableViewController ,似乎没有办法做到这一点。 相反,我不得不连接一个表视图,并手动订阅UITableViewDelegateUITableViewDataSource 。 如果我尝试子类UITableViewController ,我的应用程序崩溃之前,甚至可以把视图在屏幕上…

我的问题是,有什么我失踪? 当UITableViewController ,我将自定义表视图绑定到UITableViewController的tableView属性。 还有什么我需要做的吗?

UITableViewController只是在UIViewController添加了一些小小的便利:它创build和定位表视图,挂钩委托和数据源(通常为自身),将视图控制器editing属性传递给表,并在出现视图。 (有关详细信息,请参阅[文档] [1]。)

几乎所有的上述都是A)你需要改变的东西,以便有一个非全屏表,或B)的东西,你可以做一两行或两个,以及哪些UITableViewController只为你做方便。 对于这样的情况,最好使用自己的UIViewController子类。

第1步:子类UIViewController而不是UITableViewController

 MyTableViewController : UIViewController <UITableViewDataSource, UITableViewDelegate> 

第2步:使用界面生成器来删除tableView和自定义视图

第3步:在MyTableViewController头文件中声明tableView属性为IBOutlet ,并将其绑定到接口生成器中的tableView

恕我直言,这个过程会给你更多的灵活性。