【问题标题】:TableView inside ViewController but keeping inheritance /subclass systemViewController 中的 TableView 但保持继承/子类系统
【发布时间】:2013-08-27 20:33:14
【问题描述】:

这就是问题所在——左边的图像显示了我的 Tableview 在填满整个屏幕之前的样子,而右边的图像显示了新的,这是一个标准的 ViewController,里面有一个 TableView。问题在于新的我需要向 tableview 添加一个插座,将其设置为 tableview/source 委托,然后从我的 TableviewControllers 复制所有代码(它使用一系列子类来实现可重用性)。如果我将所有这些都复制到 ViewController,那么我最终会复制大量代码,并破坏我的继承系统,这是引入错误的完美方式,并会产生大量额外的工作

有没有办法解决这个问题?

在左图中,控制器类遵循继承层次结构

ThisTBC > abstractTBC ->UITableViewController

在右图中,控制器是一个简单的 ViewController。但如果我想控制 来自这个控制器的 TableView 我可以做到这一点,而无需将左侧控制器(ThisTBC > abstractTBC)中的所有代码复制到右侧 ViewController 中

【问题讨论】:

  • 也许真正的问题是我在 ViewController 中放入了很多真正应该在模型中的东西

标签: ios uitableview uiviewcontroller


【解决方案1】:

如果你想在两个不同的类中使用相同的代码,那为什么不把这段代码抽象成一个新的类呢?我对您的代码并不完全熟悉,但作为示例,我将提供以下内容:

假设您有 2 个视图控制器,它们做的事情完全不同,但是它们应该以相同的方式调整大小,并且能够以完全相同的方式响应某个触摸事件。在这种情况下,我将创建一个 SuperViewController(只是一个任意名称)和子类,其中提到了这个超类中的 2 个视图控制器。

希望对您有所帮助。 干杯!

【讨论】:

    【解决方案2】:

    根据您的问题,我了解到您需要两个不同的控制器:一个是 viewController,另一个是 tableViewController。您希望它在单个文件中编写集群代码。

    如果是这种情况,对 tableViewCell 执行的任何触摸都会调用 tableview 控制器中的方法。

    您能否在视图控制器中指定您想要在 tableview 中实际控制的内容。您想通过单击视图控制器中的段按钮来更改表的内容吗?或者是其他东西?任何示例代码都会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      相关资源
      最近更新 更多