Swift UITableView里面Tabbar

问题描述:

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

我的行动顺序:在故事板
1.将TabBarController,下降TAB1和TAB2这是在默认情况下它situateed,并指出自定义类(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请求加载数据。结果取决于archiveType。
5.在我的mainMenuViewController中,我转换到ArchiveTabBarController。
而问题是:当我试图去ArchiveTabBar,它失败,错误:无法使用标识符“archiveTableViewCell”deque reuasble单元格。但是当我丢弃TabBar,并试图去ArchiveTableViewController,它工作正常。

我的错误是什么?

+0

提供您的项目链接,以便我可以解决问题! – dip

+0

对不起,但我不知道,什么是项目链接 - 它只位于我的设备中。 – user3533397

+0

我试图直接在代码中注册重用标识符。现在,当我尝试在自定义单元格中的标签中设置文本时,它失败并显示错误“意外地发现了零,同时展开可选值”。 – user3533397

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

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

而在cellForRowAt,我使用了标准文本字段斯塔纳德细胞。一切正常。所以,问题在于单元的注册。任何人都可以帮忙吗?

最后,我做到了!我看过问题custom UITableCellView programmatically using swiftCustom UITableViewCell register class in Swift,还有更多问题,并决定尝试注册XIB文件。我用XIB从头创建了TableViewCell,并且一切正常。