You can put NSLog in -viewDidLayoutSubviews, and you’ll see that it works well in iOS 8. However, when you test it in iOS 7, you’ll find you can’t even scroll the TableView!!!

After hours of digging in SO, I couldn’t find any satisfactory solutions yet. Most of them exclaim that it’s an unsolved big bug in iOS 7, which might be related to -topLayoutGuide. Finally, someone says using an embeded UITableView instead of UITableViewController can deal with this problem. I tried and it worked well indeed!!!

Go to StackOverflow @lidsinker