3

UINavigationController 内で設計された iOS アプリがあります。ただし、プッシュされたビュー コントローラーの 1 つは、上部にナビゲーション バーがない全画面表示が必要です。(戻るには、小さな円形のボタンしかありません)。ただし、ナビゲーションバーを「非表示」にしようとした方法 (navigationCtl.navigationBar.hidden=TRUE) は、醜いアーティファクトを残します。ビューがプッシュされる前に呼び出すと (viewDidLoad または viewWillAppear で)、以前のビューコントローラーバーが左スライドのアニメーションが始まると同時に白く点滅します。同様に、viewDidAppear でそれを呼び出すと、2 番目のビューの上部に白いバーが残り、いくつかのサブビューが邪魔にならないように押し下げられます。通常どおり新しいビューをスライドさせる方法はありますか?


Googleを助けるために、基本的にここでの質問は次のとおりです。

一方の上部にナビゲーション バーがあり、もう一方の上部にナビゲーション バーがない場合、2 つの UIViewController 間でアニメーション化する方法。では、navbar のある UIViewController から navbar のない UIViewController に移動する方法 - 恐ろしいちらつきを回避します。

驚くべき答えは、Ev によって以下に与えられます... 素晴らしい.

4

1 に答える 1

11

これを試して、どのように機能するかを確認してください。

viewWillAppearの宛先View Controllerで

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

実際にはクールな効果があり、便利です。viewWillAppear では、ビューが表示される前にすべてが発生するため、奇妙なアーティファクトが取り除かれます。

よくなって

于 2012-08-16T04:04:28.793 に答える