[SomeViewController setHidesBottomBarWhenPushed:YES]; [self.navigationController pushViewController:SomeViewController animated:YES];
はまりどころ。hidesBottomBarWhenPushedは呼び出す側のコントローラで設定しておかないと行けない。上の例でいうと。SomeViewControllerのdidViewLoadで設定することができるが、これだとちょっとよくない。
didViewLoadで設定するとSomViewControllerがPushされた場合、ボトムバーが消えない。SomeViewController以降のpushされたビューで初めてボトムバーが消える。(SomeViewControllerを再描写して初めて消えているっぽい)。多分didViewLoadでは1手遅いんだと思う。didViewLoadより前でhidesBottomBarWhenPushedを設定しないといけない。つまりSomeViewControllerが呼ばれた時点でバーを隠す場合は、上のサンプルコードのように呼び出し側で設定する。