ios - ScrollView 内有 TableView 的两个 View Controller

标签 ios swift uitableview

我应该如何为我的以下场景实现 TableView -数据源架构:

  • 两个 View Controller ,每个 View Controller 都包含自己的 TableView 。
  • 表格 View 单元格相同
  • 不同的数据源(一个应该显示名称,另一个显示城市)
  • View Controller 在水平 ScrollView 中
  • 数据可以从table1转移到table2

我的问题是我不知道表示 TableView 的最佳方式是什么。

  • 我应该有一个 View Controller 、一个 TableView 和不同的数据源吗?
  • 具有两个 TableView 的两个 View Controller ?

谁能给我一个好的解决方案?
我尝试了很多解决方案,但我的问题始终是我无法将数据从一个传输到另一个,因为我无法访问数据源,或者在使用协议(protocol)时委托(delegate)为 nil。

最佳答案

你绝对应该只有一个 Tableview 和一个 View Controller (如果可能的话)和 2 个不同的数据源。编程的基本规则之一是永远不要重复自己。

假设你有 2 个 View Controller A 和 B。 A 和 B 都是同一个 ViewController 类的实例,例如A = SomeViewController() 和 B = SomeViewController()。在 viewDidLoad 中,您可以指定要使用的数据源。

如果您在将数据从 Viewcontroller A 传输到 Viewcontroller B 时遇到问题,您可以在 SomeViewController 类上创建一个公共(public)方法,它将对象添加到数据源(例如 addCityToDatasource:)

例如,如果您想要一个从 B 到 A 的城市,在 viewController B 中调用 A.addCityToDataSource("Tokyo") 会将城市添加到 A 的数据源

关于ios - ScrollView 内有 TableView 的两个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33581485/

相关文章:

ios - 在 swift 上使用字典时使用未解析的标识符

ios - 以编程方式设置导航栏?

ios - 文本字段的 Storyboard问题

json - 快速解析来自google maps api的json数据

ios - 当字段来自 sqlite 数据库时点击 didSelectRowAtIndexPath

ios - 如何将@IBAction函数数据获取到TableView中?

ios - 通过 IOS 应用内购买获得额外功能的选项

iOS - IB 查看模式

ios - 更改 UIPickerView 的标签

ios - UITableView -> 如何在向下滚动时加载额外的条目?