この問題は、Xcode 8に切り替えた後に発生します。 戻るボタンを押すと、ナビゲーションバーが前の色(黒色)で発生し、2秒後に通常に変わります。 GUIアップデートの遅延問題があります。Xcode 8ナビゲーションバー戻るアニメーションの問題
は、私が以前のナビゲーションバーを復元するには、このコードを使用します。
- (void)restorePreviousNavBarAppearance:(BOOL)animated {
if (_didSavePreviousStateOfNavBar) {
[self.navigationController setNavigationBarHidden:_previousNavBarHidden animated:animated];
UINavigationBar *navBar = self.navigationController.navigationBar;
navBar.tintColor = _previousNavBarTintColor;
navBar.translucent = _previousNavBarTranslucent;
if ([UINavigationBar instancesRespondToSelector:@selector(barTintColor)]) {
navBar.barTintColor = _previousNavBarBarTintColor;
}
navBar.barStyle = _previousNavBarStyle;
if ([[UINavigationBar class] respondsToSelector:@selector(appearance)]) {
[navBar setBackgroundImage:_previousNavigationBarBackgroundImageDefault forBarMetrics:UIBarMetricsDefault];
[navBar setBackgroundImage:_previousNavigationBarBackgroundImageLandscapePhone forBarMetrics:UIBarMetricsLandscapePhone];
}
// Restore back button if we need to
if (_previousViewControllerBackButton) {
UIViewController *previousViewController = [self.navigationController topViewController]; // We've disappeared so previous is now top
previousViewController.navigationItem.backBarButtonItem = _previousViewControllerBackButton;
_previousViewControllerBackButton = nil;
}
}
}