私は3つのビューコントローラを持っています。最初のビューコントローラー(FirstVC)では、ナビゲーションバーのバーの色は透明で、バー自体は半透明です。何かをクリックすると、ナビゲーションバーが不透明である必要があるSecondVCにプッシュされます。だから私はいくつかの色の値にbarTintColorを設定し、falseにisTranslucentを設定します。 SecondVCからThirdVCにプッシュすると、再びナビゲーションバーが半透明になる必要があります。この問題は、ThirdVCをポップしてSecondVCに戻るときに発生します。ナビゲーションバーは1秒間透明で表示され、必要に応じて不透明になります。遅延の理由を理解できません。ビューコントローラをポップするときのナビゲーションバーの色の変更
SecondVCのviewWillAppear()
から以下のメソッドが呼び出されます。私はThirdVCのviewWillDisappear()
から同じことを試みましたが、効果はありません。
fileprivate func configureNavigationBar(){
self.navigationController?.navigationBar.setBackgroundImage(nil, for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = nil
self.navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.barTintColor = Style.Movie.primaryBackgroundColor
let titleDict: NSDictionary = [NSForegroundColorAttributeName: UIColor.white]
self.navigationController?.navigationBar.titleTextAttributes = titleDict as? [String:Any]
}
戻るボタンをタップする代わりにスワイプしても問題ありません。
バックpopingしながら、あなたはアニメーション化されています? – vivek
私はそのようなことは何もしていません。 – StudentX
これを実装しても、そのようなUIはスムーズに見えません。 – kelin