ArchiveTableViewController

ArchiveTableViewController

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

我的动作顺序:
1.将TabBarController放在情节提要中,放置默认情况下位于其中的Tab1和Tab2,并指向自定义类(ArchiveTabBarController)和情节提要ID(ArchiveTabBarVC)。
2.将UITableViewController放在情节提要中,指向自定义类(ArchiveTableViewController),并指定情节提要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时,它运行良好。

我怎么了

最佳答案

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

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


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

08-27 19:42