Latest 1.0.0
License MIT
Platforms ios 7.0, requires ARC

Simple to use approach to handle your update cell related code outside of tableView:cellForRowAtIndexPath:. Especially helpfull when you need to handle multiple cell types.


  • Install via cocoapods (just add pod 'ABTableViewCellController', '~> 1.0'), or clone this repository and drag the content of ABTableViewCellController folder to your project.
  • To use you need to create your cell controller object that implements ABTableViewCellController protocol:
#import "ABTableViewCellController.h"

@interface CustomCellController : NSObject <ABTableViewCellController>


@implementation CustomCellController

- (void)updateCell:(UITableViewCell *)cell withObject:(NSDictionary *)object {
    cell.textLabel.text = [object objectForKey:@"name"];
    cell.detailTextLabel.text = [object objectForKey:@"email"];

  • Now you just instantiate your cell controller and assign it to your cell, then update the cell. And you’re ready to go!
#import "UITableViewCell+CellController.h"
#import "CustomCellController.h"

@implementation YourViewController {
    CustomCellController *_cellController;

- (instancetype)init {
    self = [super init];
    if (self) {
        _cellController = [[CustomCellController alloc] init];

    return self;

#pragma mark UITableViewDataSource Methods

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *identifier = @"DefaultCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];
        cell.cellController = _cellController;

    [cell updateCellWithObject:[_dataSource objectAtIndex:indexPath.row]];

    return cell;



  • iOS 7 and iOS 8


ABTableViewCellController was created by Alex Bumbu.


ABTableViewCellController is available under the MIT license. See the LICENSE file for more info.
For usage without attribution contact Alex Bumbu.

Latest podspec

    "name": "ABTableViewCellController",
    "version": "1.0.0",
    "summary": "Simple to use approach to handle your update cell related code outside of tableView:cellForRowAtIndexPath:.",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "authors": {
        "Alex Bumbu": ""
    "platforms": {
        "ios": "7.0"
    "source": {
        "git": "",
        "tag": "1.0.0"
    "source_files": "ABTableViewCellController",
    "requires_arc": true

Pin It on Pinterest

Share This