【问题标题】:How to add 2 tableviews into a single UIViewController?如何将 2 个表视图添加到单个 UIViewController 中?
【发布时间】:2025-11-22 13:40:01
【问题描述】:

我想知道如何将 2 个单独的 TableView 添加到单个 View 控制器中。

我的目标是拥有一个 tableview,一个 动态样式(可以从数据源读取),然后有另一个(这个在动态下面)并且是 静态样式。这样,静态的可以用作 UI 容器来保存内容视图。此内容视图将填充图表或图表之类的内容。

Here is a mockup of what I want to achieve

我尝试创建一个 UIViewController,然后将 2 个单独的 TableViews 添加到该父 UIViewController,然后我将其中一个设为动态,一个设为静态。问题是我收到一条错误消息:“错误:非法配置:静态表视图仅在嵌入 UITableViewController 实例时才有效。”但我不知道如何在父 UITableViewController 中添加两个 TableView。

感谢任何反馈!

【问题讨论】:

  • 为什么需要一个带有静态样式的 uitableview 来显示图表?您不能只将此 statc 视图添加为 uitable 视图中的页脚吗?
  • 我不确定你在暗示什么,你能详细说明一下吗?
  • 如果拥有静态样式 uitable 视图的目标是显示图表,您不需要为此提供 uitable 视图。有更简单更好的方法可以做到这一点,例如,您可以简单地将这个图表添加为 tableview 的页脚视图

标签: ios xcode swift uitableview uiviewcontroller


【解决方案1】:
  1. 创建一个作为委托的 UIViewController

    UITableViewDelegate、UITableViewDataSource

    故事板中此视图控制器的 2 个 uitableviews

    ViewController.h 文件中 UITableViews 的 2 个 IBOutlets,如下所示:

@property (nonatomic, weak) IBOutlet UITableView *tableView1;

@property (nonatomic, weak) IBOutlet UITableView *tableView2;

将 IBOutlets 连接到这些。

在 .m 文件中为 tableview 添加委托函数,如下所示:

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 {
    // Return the number of rows in the section.
    if(tableView == self.tableView1){
        return whatever1;
    }

    if(tableView == self.tableView2){
        return whatever2;
    }
 }

【讨论】:

    【解决方案2】:

    静态表视图仅在嵌入 UITableViewController 实例时才有效。”但我不知道如何在父 UITableViewController 中添加两个 TableView。

    你没有。您使用带有两个子表视图控制器的普通视图控制器,每个子表视图控制器都有自己的表。换句话说,使用嵌入式(子)视图控制器:

    main view controller -> main view
        child 1: table view controller -> table view 1, subview of main view
        child 2: table view controller -> table view 2, subview of main view
    

    这很容易使用容器视图直接在情节提要中进行配置。

    【讨论】:

      最近更新 更多