self.view.frame は呼び出すタイミングで取得する数値が異なる

ことを覚えておいたほうがいい。
タブバーを無理やり隠したりしている仕様だとタブバーの隠れる前と隠れた後ではサイズが異なる。

//iphone5
568 = 504 + 64 (ナビゲーションバー44 + ステータスバー20)

20とか44とか固定値使うとダサいらしいよ。