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;
打开相机崩溃--UINavigationController+JZExtension.m 57行代码修改
- (void)jz_viewDidLoad {
/*
NSAssert(!self.delegate, @"Set delegate should be invoked when viewDidLoad");
self.delegate = nil;
[self.interactivePopGestureRecognizer setValue:@NO forKey:@"canPanVertically"];
self.interactivePopGestureRecognizer.delegate = self.jz_navigationDelegate;
[self jz_viewDidLoad];
*/
self.delegate = self.delegate;
[self.interactivePopGestureRecognizer setValue:@NO forKey:@"canPanVertically"];
self.interactivePopGestureRecognizer.delegate = self.jz_navigationDelegate;
[self jz_viewDidLoad];
}
网友评论