Tabbar中的Swift UITableView

时间:2017-07-19 07:04:29

标签: swift uitableview uitabbarcontroller

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

我的行动顺序:
1.将TabBarController放入故事板,删除默认情况下位于其中的Tab1和Tab2,并指向自定义类(ArchiveTabBarController)和Storyboard 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,它工作正常。

我的错误是什么?

2 个答案:

答案 0 :(得分:0)

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

    float angle = 30.0f;
    float radius = 2.0f;

    float x = (float)( radius * Math.cos(angle));
    float y = (float)( radius * Math.sin(angle));

    Matrix.translateM(viewMatrix, 0, -x, 0, -y);
    Matrix.setLookAtM(viewMatrix, 0, 0f, 1.2f, 2.2f, 0f, 0f, 0f, 0f, 1f, 0f);

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

答案 1 :(得分:0)

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