在
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开始).>当键盘出现时,根据需要滚动表格视图.