26

基本的に、私がいるView ControllerがルートView Controllerであるかどうかを知りたいです。

そうでない場合は、ナビゲーションバーに「戻る」というボタンを配置したいと思います(適切な戻るボタンであるかのように-このビットは方法を知っています)。

あなたが尋ねる前に、私はビュー コントローラーからすべてのタイトルを削除しました - ナビゲーション バーにそれらを表示したくありませんでした... 非常に複雑です - しかし、これは、ナビゲーション スタックを通過するときにプッシュされたものがないことを意味しますビューコントローラーには戻るボタンがあります。:/

ありがとうトム

4

3 に答える 3

77
if ( self != [self.navigationController.viewControllers objectAtIndex:0] )
{
   // Put Back button in navigation bar
}
于 2010-10-28T15:51:01.093 に答える
15

あなたも試すことができます:

if (self.navigationController.viewControllers.count == 1) {
    NSLog(@"self is RootViewController");
}
于 2015-08-26T03:53:32.180 に答える
0

これが迅速なバージョンです:

// Only works if checking from within the NavigationController:
navigationController?.viewControllers.first == self

// Works if you only have a reference to the NavigationController:
navigationController?.topViewController == navigationController?.viewControllers.first
于 2022-01-25T00:51:27.850 に答える