tableViewが存在するViewControllerに従ってTableViewCellのクラスを変更します

iphone uitableview
tableViewが存在するViewControllerに従ってTableViewCellのクラスを変更します

tableViewクラスは1つしかありませんが、4つのセルクラスがあります。 アプリに存在するすべてのviewControllerに同じtableViewを追加しています。 違いはセルのタイプ(正確にはクラス)です。 tableViewが存在するviewControllerに従ってセルのクラスを変更したい。 また、セルのコンテンツビューは、セルのクラスの別のサブクラスに描画されます。 この機能を実現するためのソリューションまたはアプローチを提供してください。 前もって感謝します。

  0  0


ベストアンサー

NSObjectsの `-class`メソッドを使用してクラス名をtableViewに問い合わせ、それを使用して使用するセルクラスを決定します。

1


おそらく、View Controllerごとに異なるTable Viewを使用する必要があります(まだしていない場合)。

通常、Table Viewごとに異なるデータソース/デリゲートも使用します(たとえば、各View Controllerを使用できます)。

ただし、4つのすべてのテーブルビューでデータソース/デリゲートと同じクラスを使用する必要がある場合、 tableView:cellForRowAtIndexPath:(および他のデリゲートメソッド)は最初の引数としてテーブルビューを提供するため、このような正しいセル:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (tableView == myTableViewOne) {
        // dequeue or allocate/init and configure/return the cell for the first table view here
    } else if (tableView == myTableViewTwo) {
        // dequeue or allocate/init and configure/return the cell for the second table view here
    } else if (tableView == myTableViewThree) {
        // dequeue or allocate/init and configure/return the cell for the third table view here
    } else {
        // dequeue or allocate/init and configure/return the cell for the fourth table view here
    }
}

1


タイトルとURLをコピーしました