I\'ve been playing around with custom cells in a UITableViewController by have a base cell (BaseCell - subclass of UITableViewCell) and then subclasses of BaseCell (Sub1Cell
You can use awakeFromNib in your cell subclasses. This will be called when a new cell is created from the prototype in your storyboard, but not when a cell is re-used.
If you are using prototypes then the whole if (cell == nil) thing goes away, UITableView handles all that for you within the dequeue method.