2017-07-19 102 views
0

我是新的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

回答

0

所以,我接下來的嘗試:在我ArchiveTableViewController
,在viewDidLoad中(),我把未來:

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

而在cellForRowAt,我使用了標準文本字段斯塔納德細胞。一切正常。所以,問題在於單元的註冊。任何人都可以幫忙嗎?