Q:

Adding cells to a UITableView, but they don't visually show, yet I can click and they work

Migrating an iOS6 app to iOS7 and this used to work before. On 6 everything works fine. 
On iOS7 when adding cells to a UITableView they don't visually show, yet when I click where they should be they work as if they are there. 
Its like the UIView isn't not redrawing itself or something. Very strange.
Anyone have any ideas where to even begin to look?
========== UPDATE =========================
Performing a recursiveDescription I get this.
   <UITableView: 0xf3cb000; frame = (0 0; 320 724); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1ac3ef60>; layer = <CALayer: 0x1ac3e480>; contentOffset: {0, 0}>
  | <UITableViewWrapperView: 0x1ac3f230; frame = (0 0; 320 724); autoresize = W+H; layer = <CALayer: 0x1ac3f2a0>>
  |    | <TitDeleteGroupedTableViewCell: 0x1abddfb0; baseClass = UITableViewCell; frame = (0 208; 320 44); autoresize = W; layer = <CALayer: 0x1abddd00>>
  |    | <TitGroupedTableViewCell: 0x1ac80210; baseClass = UITableViewCell; frame = (0 120; 320 44); autoresize = W; layer = <CALayer: 0x1ac7ff50>>
  |    |    | <UITableViewCellScrollView: 0x1ac803a0; frame = (0 0; 320 44); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1ac800d0>; layer = <CALayer: 0x1ac80570>; contentOffset: {0, 0}>
  |    |    |    | <UITableViewCellContentView: 0x1ac80a70; frame = (0 0; 285 44); gestureRecognizers = <NSArray: 0x1ac80bf0>; layer = <CALayer: 0x1ac80ae0>>
  |    |    |    | <UIImageView: 0x1abc9b70; frame = (0 42; 320 2); opaque = NO; userInteractionEnabled = NO; tag = 107; layer = <CALayer: 0x1abc9c70>>
  |    |    |    | <UITextField: 0x1ac80de0; frame = (10 12; 275 23); text = ''; clipsToBounds = YES; opaque = NO; gestureRecognizers = <NSArray: 0x1abc65a0>; layer = <CALayer: 0x1ac80f20>>
  |    |    |    |    | <UITextFieldLabel: 0x1abc90d0; frame = (0 0; 275 22); text = 'Create  plan...'; clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x1abc9170>>
  |    |    |    | <UIImageView: 0x1cd992b0; frame = (276 12; 20 21); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x1cd99340>>
  |    | <TitGroupedTableViewCell: 0x1cf999b0; baseClass = UITableViewCell; frame = (0 44; 320 44); autoresize = W; layer = <CALayer: 0x1cf99710>>
  |    |    | <UITableViewCellScrollView: 0x1cf99b40; frame = (0 0; 320 44); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1cf99890>; layer = <CALayer: 0x1cf99d10>; contentOffset: {0, 0}>
  |    |    |    | <UITableViewCellContentView: 0x1cf9a1f0; frame = (0 0; 320 44); gestureRecognizers = <NSArray: 0x1cf9a360>; layer = <CALayer: 0x1cf9a260>>
  |    |    |    | <UILabel: 0x1cf9a3a0; frame = (10 12; 295 20); text = 'blah'; clipsToBounds = YES; userInteractionEnabled = NO; tag = 105; layer = <CALayer: 0x1cf9a440>>
  |    |    |    | <UILabel: 0x1d297390; frame = (10 37; 295 0); text = ''; clipsToBounds = YES; userInteractionEnabled = NO; tag = 106; layer = <CALayer: 0x1d297250>>
  |    |    |    | <UIImageView: 0x165836c0; frame = (0 42; 320 2); opaque = NO; userInteractionEnabled = NO; tag = 107; layer = <CALayer: 0x165837d0>>
  |    | <TitGroupedTableViewCell: 0x1d295080; baseClass = UITableViewCell; frame = (0 0; 320 44); autoresize = W; layer = <CALayer: 0x1d24ee50>>
  |    |    | <UITableViewCellScrollView: 0x1d295210; frame = (0 0; 320 44); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1d1f3a60>; layer = <CALayer: 0x1c5c4e40>; contentOffset: {0, 0}>
  |    |    |    | <UITableViewCellContentView: 0x1d295480; frame = (0 0; 320 44); gestureRecognizers = <NSArray: 0x1d28e4e0>; layer = <CALayer: 0x1d28df50>>
  |    |    |    | <UILabel: 0x1d295560; frame = (10 12; 295 20); text = 'Budget-Blah'; clipsToBounds = YES; userInteractionEnabled = NO; tag = 105; layer = <CALayer: 0x1d28e5f0>>
  |    |    |    | <UILabel: 0x1caaa710; frame = (10 37; 295 0); text = ''; clipsToBounds = YES; userInteractionEnabled = NO; tag = 106; layer = <CALayer: 0xdbcc210>>
  |    |    |    | <UIImageView: 0xd889590; frame = (0 42; 320 2); opaque = NO; userInteractionEnabled = NO; tag = 107; layer = <CALayer: 0xd827d80>>
  |    | <TitDeleteGroupedTableViewCell: 0x1abce730; baseClass = UITableViewCell; frame = (0 164; 320 44); autoresize = W; layer = <CALayer: 0x1abce6e0>>
  | <UIImageView: 0x1ac3ebb0; frame = (0 720; 320 3); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x1ac3ec90>>
  | <UIView: 0x1cda3300; frame = (0 88; 320 32); autoresize = W; layer = <CALayer: 0x1cda3360>>
  |    | <UIImageView: 0x1cda27d0; frame = (0 0; 320 32); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x1cda2860>>
  |    | <UILabel: 0x1cda28f0; frame = (0 0; 320 32); text = 'MY PLANS'; clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x1cda2990>>
  |    | <UIButton: 0x1cda33b0; frame = (260 0; 60 32); opaque = NO; layer = <CALayer: 0x1cda34a0>>
  |    |    | <UIButtonLabel: 0x1cda3960; frame = (17 9; 26 14); text = 'EDIT'; clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x1cda3a10>>
  | <UIImageView: 0x1ac3ed60; frame = (316 561; 3 7); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x1ac3ee40>>

So it looks like all the ones there are visible so this PO is correct. So I guess what is happening is when I click a tableviewcell that is empty (i.e. no data) but just has a background image with no seperators (i.e. it just looks flat and smooth). It still letting me pick it as if its a good cell.
So there are two issues.

The new data that is given to the dictionary feeding this tableview either doesn't have the data or it does and isn't redrawing.
Its allowing me to click empty cells, which I don't want to happen.

A:

The internal structure of a UITableView changed in iOS 7. This is not documented anywhere because there are no side effects if you just use the public API (add stuff to contentView, not directly to cell).
There is an issue if you do stuff like self.superview from inside the cell, since the view hierarchy is not defined by the public API.

