3

私はこの ViewController #1 を持っています。これはナビゲーション コントローラーのルート ビュー コントローラーであり、

self.navigationController.navigationBarHidden = YES;

ViewController #1 は、ナビゲーション コントローラに ViewController #2 をプッシュするよう指示します。

self.navigationController.navigationBarHidden = NO;

画面の左側からスワイプして ViewController #2 から ViewController #1 に戻りたい場合、ここに添付したスクリーンショットのようにビューが表示されます。これは、指を右に動かすとキャプチャされるため、右にスワイプし続けると、ViewController #1 がすべての画面領域を覆うまで、右上の黒い領域がどんどん小さくなります。

これは、2 つのビュー コントローラーの非表示/表示ナビゲーション バーの違いが原因であると推測しています。

この黒い領域を取り除くことが可能かどうかを知りたいです。

ここに画像の説明を入力

4

2 に答える 2

14

HoanNguyenと話し合ったように、viewWillAppear/Disappear でナビゲーション バーを非表示/表示するようにコードを記述しましたが、最終的には値をアニメーション化するのがコツであることがわかりました。奇妙ですが、これで問題が解決し、黒い領域がなくなりました:

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

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController setNavigationBarHidden:!self.shouldHideNavBar animated:animated];
}
于 2014-03-20T05:15:43.690 に答える
3

コード セットの非表示/表示ナビゲーションを viewWillAppear または viewDidAppear に配置する必要があります。

于 2014-03-17T02:00:45.323 に答える