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,它工作正常。
我的错误是什么?
所以,我接下来的尝试:在我ArchiveTableViewController
,在viewDidLoad中(),我把未来:
tableView.register(UITableViewCell.classForCoder(), forCellReuseIdentifier: "archiveTableViewCell")
而在cellForRowAt,我使用了标准文本字段斯塔纳德细胞。一切正常。所以,问题在于单元的注册。任何人都可以帮忙吗?
最后,我做到了!我看过问题custom UITableCellView programmatically using swift和Custom UITableViewCell register class in Swift,还有更多问题,并决定尝试注册XIB文件。我用XIB从头创建了TableViewCell,并且一切正常。
提供您的项目链接,以便我可以解决问题! – dip
对不起,但我不知道,什么是项目链接 - 它只位于我的设备中。 – user3533397
我试图直接在代码中注册重用标识符。现在,当我尝试在自定义单元格中的标签中设置文本时,它失败并显示错误“意外地发现了零,同时展开可选值”。 – user3533397