2017-07-19 8 views
0

私はSwiftで新しく、今ではアプリケーションを開発しようとしています。 3つのタブを持つUITabBarControllerを表示する必要があります。各タブには同じViewController(UIViewControllerから継承されたカスタムクラス)があります。私の行動のSwift UITableView with Tabbar

シーケンス:ストーリーボードで
1.入れTabBarController、デフォルトではそれにsituateedたTab1をとTAB2を落とし、およびカスタムクラス(ArchiveTabBarController)を指摘し、ストーリーボードID(ArchiveTabBarVC)。
2.ストーリーボード、ポイント付きカスタムクラス(ArchiveTableViewController)、およびポイント付きストーリーボードID(archiveTableVC)にUITableViewControllerを配置します。
3.このTableViewControllerでカスタムセルを作成しました。カスタムクラス(ArchiveTableViewCell)とポイント付き識別子(archiveTableViewCell)をポイントしました。 ()は、私がデータをロードするためにGETリクエストを作るのviewDidLoadで、私のArchiveTableViewControllerで

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; 
} 

:私のArchiveTabBarControllerで
4.、私はそのようなコードを書きました。結果はarchiveTypeに依存します。
5.私のmainMenuViewControllerで、私はArchiveTabBarControllerに移行しました。
問題:ArchiveTabBarに移動しようとすると、エラーで失敗します。識別子「archiveTableViewCell」でセルを再取得できません。しかし、私がTabBarを落としてArchiveTableViewControllerに行くと、うまくいきました。

私の間違いは何ですか?

+0

私は問題を解決できるように、プロジェクトのリンクを提供してください! – dip

+0

申し訳ありませんが、わかりませんが、プロジェクトリンクとは何ですか - それは私のデバイスにのみあります。 – user3533397

+0

コードに直接再利用識別子を登録しようとしました。これで、カスタムセルのラベルにテキストを設定しようとすると「オプション値のアンラッピング中に予期せずnilが見つかりました」というエラーで失敗します。 – user3533397

答えて

0

だから、私は次の試みた:

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

をそしてcellForRowAtに、私はstanardセルのための標準的なテキストフィールドを使用:私のArchiveTableViewControllerで
を、のviewDidLoad()で、私は次置きます。すべてうまく動作します。したがって、問題はセルの登録にあります。誰もそれを助けることができますか?

関連する問題