在Xcode的对象库中,有两个可用于创建表视图的选项 - 表视图和表视图控制器。 这两者之间有什么区别?何时使用它们?
答案 0 :(得分:21)
TableViewController是一个内置TableView的ViewController。这将需要已声明和设置所需的委托方法。这个VC已经是一个TableView委托和数据源。它无法调整大小。上行是易用性,下行灵活性非常有限。
TableView只是一个TableView(UIView的子类)。它可以添加到ViewController并调整大小,与另一个基于视图的对象一起使用,等等。优点是灵活性,缺点是你必须自己设置委托和数据源方法(在我看来,非常值得花时间去获取)灵活性)。
另一个注意事项是,当使用新的Static TableView单元格(iOS5的一部分)时,您必须使用TableViewController。
答案 1 :(得分:5)
UITableViewController
是UIViewController
的子类。它已假定您将UITableView
作为您的rootView,因此您已经可以从代码访问tableView(self.tableView)。它实现了UITableViewDataSource
和UITableViewDelegate
协议。它还为您提供了许多方法来覆盖。它允许您不依赖于XIB文件,因为您已经知道将拥有什么(UITableView
作为rootView。)
UITableView
只是UIView
,通常您必须遵守我在UIViewController
上面引用的协议才能填充(数据源)并使用它(代表),您可能需要为UITableView
创建一个IBOutlet。
一方面你有速度,但你没有其他路径那么灵活。另一方面,你却恰恰相反。