iOS UITableView 与 UITableViewController实例详解

2020-01-18 15:58:57丽君

很多应用都会在界面中使用某种列表控件:用户可以选中、删除或重新排列列表中的项目。这些控件其实都是UITableView 对象,可以用来显示一组对象,例如,用户地址薄中的一组人名。

  UITableView 对象虽然只能显示一行数据,但是没有行数限制。

•编写新的应用程序 JXHomepwner 应用

  创建应用,填写基本信息

•UITableViewController

  UITableView 是视图。我们知道 模型-视图-控制器(Model-View-Controller),他是我们必须遵守的一种设计模式。其含义是,应用创建的任何一个对象,其类型必定是以下三种类型中的一种。

  1. 模型:负责存储数据,与用户界面无关。

  2. 视图:负责显示界面,与模型对象无关。

  3. 控制器:负责确保视图对象和模型对象的数据保持一致。

  一般来说,作为视图对象的 UITableView 不应该负责处理应用的逻辑或数据。当在应用中使用 UITableView 对象的时候,必须考虑如何大啊呸其他的对象,与 UITableView 对象一起工作:

  通常情况下,要通过某个视图控制器对象来创建和释放 UITableView 对象,并负责显示或者隐藏视图。

  UITableView 对象要有数据源才能正常工作。UITableView 对象会向数据源查询要显示的行数,显示表格行所需要的数据和其他所需要的数据。没有数据源的 UITableView 对象只是空壳。凡是遵守 UITableViewDataSource 协议的对象,都可以成为 UITableView 对象的数据源(即dataSource属性所指向的对象)。

  通常情况下,要为 UITableView 对象设置委托对象,以便能在该对象发生特定事件的时候做出相应的处理。凡是遵守 UITableViewDelegate 协议的对象,都可以成为 UITableView 对象的委托对象。

  UITableViewController 对象可以扮演以上全部角色,包括视图控制器对象、数据源和委托对象。

  UITableViewController 是 UIViewController 的子类,所以也有 view 属性。UITableViewController 对象的 view 属性指向一个 UITableView 对象,并且这个对象由 UITableViewController 对象负责设置和显示。UITableViewController 对象会在创建 UITableView 对象后,为这个 UITableView 对象的 dataSource 和 delegate 赋值,并指向自己。

• 创建 UITableViewController 子类

  下面要为我们创建的程序编写一个 UITableViewController 子类。

  UITableViewController 的指定初始化方法是 initWithStyle: 调用 initWithStyle: 时要传入一个类型作为 UITableViewStyle 的常熟,该常熟决定了 UITableView 对象的风格。目前可以使用的 UITableViewStyle 常量有两个,即 UITableViewStylePlain 和 UITableViewStyleGrouped 。

  现在将 UITableViewController 的指定初始化方法改为 init: ,为此时需要遵守两条规则: