JZNavigationExtension
JZNavigationExtension copied to clipboard
侧滑一半导行栏变白问题
id _previousVisibleViewController = [objc_getAssociatedObject(self, _cmd) weakObjectValue];
if (!_previousVisibleViewController) {
_previousVisibleViewController = [self.topViewController.transitionCoordinator viewControllerForKey:UITransitionContextFromViewControllerKey];
// 测试这个问题出现在这部 如果滑动到一半返回 topViewController. transitionCoordinator 为nil 此时应该把_previousVisibleViewController 指向topViewController 因为后面用到这个_previousVisibleViewController 而这个controller为nil的时候就会出现空白了 if (!_previousVisibleViewController) { _previousVisibleViewController = self.topViewController; } self.jz_previousVisibleViewController = _previousVisibleViewController; } return _previousVisibleViewController;
不改变源码的情况下,只要在viewWillAppear方法里加上self.navigationController.jz_previousVisibleViewController;这一句调用就不会出现侧滑取消时的颜色问题。
但是返回到前一个页面时,前一个页面的导航栏颜色会相同。如果两个页面导航栏颜色不一样,前一个页面viewDidLoad时一定要加上jz_navigationBarTintColor的设置。
@lsb332 正解