gpt4 book ai didi

ios - tableView initwithframe 和 storyboard

转载 作者:行者123 更新时间:2023-11-28 22:19:01 24 4
gpt4 key购买 nike

我正在尝试将 tableview 作为 subview 添加到我的 tableViewController,但我想在 storyboard 中设置单元格。这将是一个静态的 tableview

这是在单击按钮时调用 tableview 的代码。

- (IBAction)botaoAdicionar:(id)sender {
AtividadesPraticadasTableView *tableview = [[AtividadesPraticadasTableView alloc] initWithFrame:CGRectMake(0, 170, 320, 320) style:UITableViewStylePlain];
[self.view addSubview:tableview];
}

tableview 类中我有这个:

@implementation AtividadesPraticadasTableView

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}

现在,我在 Storyboard中有一个 viewcontroller 和一个 tableview,我将 tableview 的类更改为这个文件 AtividadesPraticadasTableView。它在 storyboard 中有三个静态自定义单元格,因此它打开一个空白的默认 tableview

我错过了什么?

最佳答案

静态 TableView 完全包含在 Storyboard 中,需要 Storyboard 中的信息来显示其内容。

您已经在 Storyboard 中定义了一个静态 TableView Controller ,填充它并将 tableView 的自定义类设置为您的自定义类,但是当您想要添加 TableView 时,您只是实例化该类的 TableView 。这不会获得您添加到 Storyboard 中的任何信息。

此外,静态单元格信息由 UITableViewController 读取和理解,而不是 UITableView,因此您也处于错误的级别。

您需要执行以下操作:

  • 从原始 View Controller 的 storyboard 属性(如果它与静态表在同一个 Storyboard上)或使用 storyboardWithName:bundle 获取对 Storyboard的引用:

  • 使用 instantiateViewControllerWithIdentifier: 从该 Storyboard 中实例化 TableView Controller 。这将创建一个包含所有静态单元格的 TableView Controller 对象

  • 使用 addChildViewController:
  • 将其作为 subview Controller 添加到您的原始 View Controller 中
  • 将 TableView Controller 的 tableView 添加为 subview

在 Storyboard中添加一个容器 View 来保存这个 View ,并在按下按钮时显示它可能更简单,正如 Mike Slutsky 所建议的那样——这将完成所有的实例化和添加以及 subview Controller 的工作对你来说,但原理还是一样的。

此外,将 TableView 作为 subview 添加到 TableView Controller 听起来很狡猾 - TableView Controller 已经将 TableView 作为其 View ,而您不能真正向其添加 subview 。

关于ios - tableView initwithframe 和 storyboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20902806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com