【发布时间】: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