1

私はNavigationControllerを備えたrootViewControllerを持っています。rootViewではnavigationBarは非表示になっています。次のビューを押すと、navBarが表示されます。したがって、2番目のビューからrootViewに戻ると、navBarが非表示になります。それは大丈夫。次に、2番目のビューから3番目のビューに移動して、navBarを表示します。ただし、2番目のビューでは、2番目のビューからアクセスしたときにrootViewでnavBarを非表示にするコードがあるため、非表示になっています。

-(void)viewWillDisappear:(BOOL)animated{
    [super viewWilDisappear:animated];
    [self.navigationcontroller setNavigationBarHidden:YES animated:YES];
}

rootViewでのみnavBarを表示し、他のすべてのビューで非表示にするにはどうすればよいですか?

2番目のビューはUIViewControllerのサブクラスであり、3番目のビューもUIViewControllerのサブクラスであり、IBによって作成されたUITableViewを備えています。


UPD

最初のviewControllerでこれを追加しました:

-(void)viewDidLoad{
[self.navigationController setNavigationBarHidden:YES];
[super viewDidLoad];

}

-(void)viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}

-(void)viewWillDisappear:(BOOL)animated{

    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}

そして第3にこれ:

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}

助けてくれてありがとう、みんな!

4

3 に答える 3

1

3番目のビューのviewWillAppearにこれを追加します:

-(void)viewWillAppear:(BOOL)animated
{
  [super viewWillAppear:animated];
  [self.navigationcontroller setNavigationBarHidden:NO animated:YES];
}
于 2012-08-30T09:20:02.177 に答える
1

これを試して:-

thirdViewに書き込みます:-

 -(void)viewDidAppear:(BOOL)animated
    {
      [self.navigationcontroller setNavigationBarHidden:NO animated:YES];

}
于 2012-08-30T09:24:06.947 に答える
1

2番目と3番目のViewControllerにナビゲーションバーを表示したい場合は、viewWillAppearまたはviewDidLoadメソッドに以下を追加するだけです。

self.navigationController.navigationBarHidden = NO; 

これは、UINavigationControllerに(強力な)プロパティがある場合です。これを持っていることをお勧めします。

于 2012-08-30T09:27:22.527 に答える