ios – 在实现表视图委托和数据源方法的UIViewController上使用UITableViewController有什么好处吗?

Xcode中,当我创建一个新的视图控制器来包含一个tableview我有两个选项

>创建一个新的UITableViewController
>创建一个实现UITableViewDelegate和UITableViewDataSource协议的新UIViewController

假设我正确地实现了协议的所有必需和可选的方法,是否有任何优势(除了不需要写方法存根)使用UITableViewController?意味着在UITableViewController类中的后台实现了什么(内存管理,缓存等),使得选项1比选项2更好的选择?

解决方法

您必须编写委托和协议方法,无论您采取哪种方法.

当您需要具有表视图的视图控制器时,您只能选择在UITableViewController上使用UIViewController的两个可能原因:

>您需要表视图小于视图控制器的视图.
>您需要向视图控制器添加不与表视图滚动的附加视图(尽管有使用UITableViewController解决此问题的方法).

以下是UITableViewController为您需要复制的所有内容

>定义和设置UITableView.>将其自身设置为表视图的dataSource和委托.>覆盖setEditing:animated:方法,还可以设置表视图的编辑属性.>取消选择viewWillAppear:方法中的最后一个选定的行,具体取决于cleaRSSelectionOnViewWillAppear属性.>在viewDidAppear:方法中闪烁表视图的滚动条.挂钩刷新控制(从iOS 6开始).>第一次显示时重新加载表视图.>调整表视图的contentInset(从iOS 7开始).>当键盘出现时,根据需要滚动表格视图.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...