2017-07-02 22 views
0

Swift4でプログラムで作成したUITableviewControllerがあります。絵でenter image description hereUITableViewControllerフッター内のカスタムUITableViewセル

マークされた矩形は、私がfooterviewでテーブルビューのセルにカスタムセルをロードする

override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { 

     let tableFooterView = UITableView() 
     tableFooterView.rowHeight = 100 

     return tableFooterView 
    } 

    override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { 
     return 365 
    } 

内部UITableViewと私のfooterviewです。私はこの次のコード

tableFooterView.dequeueReusableCell(withIdentifier: emptyCellIdentifier) as! EmptyTableViewCells 

を使用してみました。しかし、私はエラーを取得する -

fatal error: unexpectedly found nil while unwrapping an Optional value

あなたはviewForFooterInSection方法で作成しているときフッターのtableViewのためにセルを登録する必要があり、あなた

答えて

0

を助けてくださいデリゲートとデータソースを

の場合は、タグまたは何かを使用して両方のテーブルを区別する必要があります。
tableFooterView.register(EmptyTableViewCells.self, forCellReuseIdentifier: emptyCellIdentifier) 

だからあなたの方法は次のようになります。

func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { 
    if tableView.tag == 1 { 
     tableFooterView = UITableView() 
     tableFooterView.register(EmptyTableViewCells.self, forCellReuseIdentifier: emptyCellIdentifier) 
     tableFooterView.rowHeight = 100 
     tableFooterView.tag = 2 
     tableFooterView.dataSource = self 
     tableFooterView.delegate = self 
     return tableFooterView 
    } else { 
     //footer view is nil for the table view which is in the main table footer 
     return nil 
    } 
} 

これはtableFooterView.dequeueReusableCellライン上でクラッシュを停止しますが、あなたは、コードではなくIBOutletでtableFooter空のセル上のボタンやラベルなどの他のビューを追加する必要があります。 IBOutlet接続コンポーネントにアクセスすると、再びクラッシュします。

+0

@ NasimRony助けてくれましたか? –

関連する問題