1

現在、私はiPhoneアプリで作業しています。AとBのような2つの画面があり、Aにはナビゲーションバーがありませんが、Bにはナビゲーションバーがあります。だから私はこのように設定します。

クラスA:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.title=@"A";
    [self.navigationController setNavigationBarHidden:YES];
}

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

クラス B:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.title=@"B";
    [self.navigationController setNavigationBarHidden:NO];
}

-(void)Previousscreen
{
  [self.navigationController popViewControllerAnimated:YES];
}

次に、アプリケーションを実行します。B から A のような前のクラスに移動すると、参照用に添付のスクリーン ショットの下の B クラスに青い色が表示されます。この問題を解決するにはどうすればよいですか? 私を助けてください

前もって感謝します

ここに画像の説明を入力

4

7 に答える 7

2

クラスBにセット

-(void)viewWillAppear:(BOOL)animated
{
 [self.navigationController setNavigationBarHidden:NO];
}
于 2012-10-23T10:13:24.867 に答える
1

次のコードを使用する必要があります。

[navigationController setNavigationBarHidden: YES animated:YES]

in - (void)viewWillAppear:(BOOL)animated以降、両方のクラスのビュー ライフサイクルで。[ - (void)viewDidLoadでこれを行うことは避けてください。]

ここでの秘訣は、(より単純な setNavigationBarHidden: メソッドの代わりに) setNavigationBarHidden : animation :メソッドを使用することです。これにより、UI の問題と、それに起因する位置の問題が解消されます。

PS self.navigationController の値を確認してください。コード内のある時点で、ナビゲーション バーが非表示になっているかどうかを確認する必要がある場合は、( self.navigationController. navigationBar.hiddenの代わりに) navigationBarHiddenを使用します。

于 2014-03-26T09:49:40.180 に答える
0

以下の行を使用してメソッドに非表示navigationBarにしviewWillAppear:ます-

-(void)viewWillAppear:(BOOL)animated
{
    self.navigationController.navigationBar.hidden=YES;
}
于 2012-10-23T10:24:35.043 に答える
0

クラスBnavigationBarHidden:のインviewWillDisAppearを設定してみる

クラスB

-(void)viewWillDisAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:YES];
}
于 2012-10-23T10:14:35.693 に答える
0

あなたのコードは大丈夫ですHideと. 問題は、ビューが表示される直前に呼び出される'sを隠しているため、ビューをロードする前に毎回非表示になっていることです。 そして、あなたの青い色について話すなら、それはあなたの色だと思います. 非表示にした後、高さが44.0のスペースが上にあるためです。したがって、それを修正するには3つのオプションがあります。UnhidenavigationBarClass AnavigationBarviewWillAppear:Class AnavigationBar
windownavigationBarself.view

  • hideClass AnavigationBarinClass AviewDidAppear:メソッド。
  • window表示したい色を設定します。
  • 画像のwindow上部にある画像を背景に追加してnavigationBar、オリジナルが非表示になると表示されるようにすることができます。Class BnavigationBarnavigationBar
于 2012-10-23T10:33:47.380 に答える
0

コントローラーを押しているときにナビゲーションバーを動的に隠したり表示したりするときの動作はサポートされていないと思います。

簡単な解決策 - のアニメーション バーを非表示UINavigationControllerにし、コントローラーで表示したい場合は、 aUINavigationBarを追加するだけです。

于 2012-10-23T10:19:04.340 に答える