繁体   English   中英

如何创建UITableViewController的子类以扩展功能?

[英]How to create subclass of UITableViewController to extend capabilities?

我正在UITableViewController中创建功能,当用户点击某个单元格时,将使用输入视图(即选择器视图等)从粘贴的单元格下面滑出一个新的单元格。

现在,我可以一遍又一遍地在每个表视图控制器中创建此行为,但是我想知道是否有一种方法可以创建自动构建在此功能中的表视图控制器的子类。 我的想法将涉及创建一个新的protocol-delegate方法,该方法要求委托返回给定indexPath的输入视图,然后我的子类将自动知道将inputView插入被点击的单元格下方的单元格中。

这种实现背后的想法是,表视图是使用与表视图相同的数据源和委托方法构建的,唯一的区别是,如果新的委托方法返回给定索引路径的输入视图,我就会知道为分接的单元提供该功能。

所以我的问题是,当通过子类化UITableViewController来点击单元格时,如何实现这种自动单元格插入(插入输入视图)?

我对iOS表格视图非常熟悉,只是不了解如何通过创建子类来扩展功能。 任何帮助将不胜感激。

如果此答案超出了您已经熟悉的范围,请提前道歉-我不确定起点是什么。

因此,当我们讨论iOS上的表时,我们具有三个组件UITableView本身, delegatedatasource (我确定您已经知道所有这些)。 为了帮助我们,苹果提供UIViewController管理表视图,委托和数据源的子类-的UITableViewController

您显然是对的,认为将“自动输入单元插入”逻辑放在一个地方更加清晰,合理,更好,而不是在代码中使用的所有UITableViewController实例中进行复制。

但是 ,这是关键, delegatedatasource方法不是 UITableViewController一部分-它们是UITableView一部分。 听起来好像您真正想要做的是子类化表视图扩展委托/数据源方法。

如果这令人困惑,请这样考虑:理想情况下,您希望改进的自动输入单元格插入,表视图可以在任何地方使用 -表视图不仅可以在表视图控制器中使用,还可以在任何视图控制器(或视图)中使用,并且委托方法没有在控制器中实施。

因此,您可能想要做的是子类UITableView ,修改委托和数据源以支持新的输入视图方法( 如果不确定扩展协议,请参见此答案 ),然后-如果您愿意-创建默认情况下使用表视图子类的UITableViewController子类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM