3

これら2つのステートメントの違いは何ですか。ナビゲーション バーを非表示にするために、これらのステートメントのいずれかを使用して、以下に示すように viewWillAppear メソッドでナビゲーション バーを非表示にしています。

 -(void)viewWillAppear:(BOOL)animated
{
    self.navigationController.navigationBar.hidden=true;   //works....
}

 -(void)viewWillAppear:(BOOL)animated
{
    [self.navigationController.navigationBar setHidden:YES]; //doesn't work...
}

このコードは、self.navigationController.navigationBar.hidden=true; で正常に動作します。しかし、[self.navigationController.navigationBar setHidden:YES]; を使用すると、機能しません。なぜですか?

申し訳ありませんが、質問に誤りがありました。修正しました。もう一度ご覧ください。

4

6 に答える 6

4

FWIW、今日、iOS 6 で次のような状況に遭遇しました。

self.navigationController.navigationBar.hidden = YES;

効果ゼロのようでした。何が機能したかは次のとおりです。

[self.navigationController setNavigationBarHidden:YES animated:NO];
于 2014-04-28T19:48:00.737 に答える
1

self.navigationItem.hidesBackButton = NO;

これにより、ナビゲーションバーの戻るボタンのみが非表示になります。

self.navigationController.navigationBar.hidden = false;

これにより、BackButtonを含むナビゲーションバーが非表示になります。

self.navigationController.navigationBar.hidden = true;

これにより、ナビゲーションバーが有効になります。

self.navigationItem.hidesBackButton = YES;

これにより、ナビゲーションバーの戻るボタンが有効になります(ナビゲーションバーが非表示に設定されるまで)。

于 2013-02-19T05:15:55.440 に答える
1

違いは、一方がそれを隠し、他方がそれを示すことです:)

YES = TRUE 
NO = FALSE

ナビゲーション バーを非表示にします

self.navigationController.navigationBar.hidden=TRUE;
[self.navigationController.navigationBar setHidden:YES]; 

ナビゲーション バーを表示します

 self.navigationController.navigationBar.hidden=FALSE;
[self.navigationController.navigationBar setHidden:NO]; 
于 2013-02-19T05:04:41.183 に答える
0

多分あなたのコードはYESからNOに変更するでしょう

setNavigationBarHidden:animated: を使用できます。

-(void)viewWillDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}
-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:YES animated:YES];
}
于 2013-02-19T05:11:18.527 に答える
0

このコード:self.navigationItem.hidesBackButton = YES;実際に戻るボタンを非表示にします

ナビゲーションバーに表示されます。このコード:

 self.navigationController.navigationBar.hidden=false;

実際にはナビゲーション バーを非表示にしないでください。ビューの上部にナビゲーション バーが表示されます。

于 2013-02-19T05:03:15.173 に答える
0

ナビゲーションバーを非表示にしたい場合は、これを使用する必要があります:-

self.navigationController.navigationBarHidden = YES;

または

[self.navigationController setNavigationBarHidden:YES];

そして、それは毎回うまくいきます。

いずれにせよ、あなたのケースは問題なく動作するはずですが、ご覧のとおり、これは iOS の内部的な不整合にすぎません。

于 2013-02-19T05:14:05.307 に答える