UIViewController内に2つのがありUINavigationControllerます。最上位はにhidesBottomBarWhenPushed設定されていYESます。一番上を押すと、UIViewController本来UITableViewあるべき位置から約20px上に押し出されます(押し出されたView Controllerの一番上とセルのセルの高さの違いに注意してください)。

以下のスクリーンショットのセル位置と比較してください。

さらに、一番上をポップすると、UIViewController本来UITableViewあるべき位置から約20px下にプッシュされます(上の余分な濃い青色のスペースに注意してくださいUITableView)。

-[UIViewController setHidesBottomBarWhenPushed:YES]呼び出しを-[UIViewController loadView]、、、-[UIViewController viewWillAppear:]に移動してみました-[UIViewController viewDidAppear:]。UIViewControllerはすでにプッシュされているため、これらのコールバックはすべて遅すぎます。したがって、UIToolbarは非表示になりません。
これらのギャップを回避する方法はありますか?-[UINavigationController setToolbarHidden:YES animated:NO]現在、一番上UIViewControllerの-[UIViewController viewDidAppear:]と-[UINavigationController setToolbarHidden:NO animated:NO]一番下UIViewControllerのを呼び出してい-[UIViewController viewDidAppear:]ます。これは理想的とは言えません。