1

众所周知,Cocoa Touch 中的表格视图是最漂亮的框架元素之一。为方便起见,Apple 为我们提供了一个很好的视图控制器类,用于将表格视图的功能封装在 vc 中,UITableViewController.

同时,有时我们希望利用表格视图的功能而不让它占据整个屏幕。但是,似乎没有办法通过子类化来做到这一点UITableViewController。相反,我必须连接一个表格视图并手动订阅UITableViewDelegateand UITableViewDataSource。如果我尝试子类UITableViewController化,我的应用程序在它甚至可以将视图放在屏幕上之前就崩溃了......

我的问题是,我有什么遗漏吗?子类化时UITableViewController,我将我的自定义表格视图连接到中的 tableView 属性UITableViewController。我还有其他事情要做吗?

4

2 回答 2

8

UITableViewController只是增加了一些小便利UIViewController:它创建和定位表视图,连接委托和数据源(通常与自身),将视图控制器editing属性传递给表,并在视图出现时执行一些有用的 UI 位。(有关详细信息,请参阅 [the docs][1]。)

几乎所有上述内容都是 A)您需要更改以拥有非全屏表格的事情,或 B)您可以在一行或两行中做的事情,这UITableViewController只是为了您的方便. 对于这种情况,您最好使用自己的UIViewController子类。

于 2012-07-16T16:37:12.607 回答
2

第1步:子类UIViewController而不是UITableViewController

MyTableViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

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

IBOutlet第 3 步:在头文件中声明 tableView 属性MyTableViewController并将其绑定到界面构建器中的 tableView

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

于 2012-07-16T17:59:45.143 回答