【问题标题】:Swift UITableView inside TabbarTabbar 内的 Swift UITableView
【发布时间】:2017-07-19 07:04:29
【问题描述】:

我是 Swift 新手,现在我正在尝试开发一个应用程序。我需要显示带有 3 个选项卡的 UITabBarController。每个选项卡都有相同的 ViewController(它是自定义类,继承自 UIViewController)。

我的行动顺序:
1.将TabBarController放入storyboard中,去掉默认位于其中的Tab1和Tab2,并指向自定义类(ArchiveTabBarController)和Storyboard ID(ArchiveTabBarVC)。
2. 将UITableViewController放入storyboard,指向自定义类(ArchiveTableViewController),指向storyboard ID(archiveTableVC)。
3.在这个TableViewController中做了一个自定义单元格:指向一个自定义类(ArchiveTableViewCell),并指向一个标识符(archiveTableViewCell)。
4.在我的ArchiveTabBarController中,我写了这样的代码:

override func viewWillAppear(_ animated : Bool) {
    super.viewWillAppear(animated);
    let item1 = ArchiveTableViewController();
    item1.archiveType = "";
    let item2 = ArchiveTableViewController();
    item2.archiveType = "type1";
    let item3 = ArchiveTableViewController();
    item3.archiveType = "type2";   
    let controllers = [item1, item2, item3];
    self.viewControllers = controllers;
}  
override func viewDidLoad() {
    super.viewDidLoad();
    delegate = self;
} 

在我的 ArchiveTableViewController 中,在 viewDidLoad() 中,我发出 GET-Request 来加载数据。结果取决于archiveType。
5. 在我的 mainMenuViewController 中,我过渡到 ArchiveTabBarController。
问题是:当我尝试转到 ArchiveTabBar 时,它失败并出现错误:无法将标识符为“archiveTableViewCell”的可重用单元出列。但是当我放下 TabBar 并尝试转到 ArchiveTableViewController 时,它工作正常。

我的错误是什么?

【问题讨论】:

  • 提供您的项目链接,以便我解决问题!
  • 抱歉,我不知道,什么是项目链接 - 它只位于我的设备中。
  • 我尝试直接在代码中注册重用标识符。现在,当我尝试在自定义单元格中的标签中设置文本时,它失败并出现错误“在展开可选值时意外发现 nil”。
  • 附加信息^ 我尝试在 Storyboard 中的 ArchiveTabBarController 和 ArchiveTableViewController 之间添加序列。有用。但是,如果我尝试以编程方式添加控制器,它会失败。怎么了?也许,我应该在我的 ArchiveTableViewController 中注册一些东西?

标签: swift uitableview uitabbarcontroller


【解决方案1】:

所以,我尝试了下一个:
在我的 ArchiveTableViewController 中,在 viewDidLoad() 中,我放了下一个:

tableView.register(UITableViewCell.classForCoder(), forCellReuseIdentifier: "archiveTableViewCell")

在 cellForRowAt 中,我使用标准文本字段作为标准单元格。一切正常。所以,问题出在单元格的注册上。有人可以帮忙吗?

【讨论】:

    【解决方案2】:

    最后,我做到了!我阅读了问题custom UITableCellView programmatically using swiftCustom UITableViewCell register class in Swift 以及更多问题,并决定尝试注册XIB 文件。我用 XIB 从头开始​​创建了 TableViewCell,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 2016-11-08
      • 2017-01-30
      • 1970-01-01
      相关资源
      最近更新 更多