Skip to content

Commit

Permalink
fix: 修复 SwiftUI 在 iOS17 上首页颜色设置不正确问题 #23
Browse files Browse the repository at this point in the history
  • Loading branch information
l1Dan committed Dec 27, 2023
1 parent e22f3af commit 51af5ec
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -182,13 +182,13 @@ + (void)load {
return callSuperBlock();
}

NXNavigationTransitionState action = selfObject.nx_navigationTransitionState;
if (action != NXNavigationTransitionStateUnspecified) {
NXNavigationTransitionState state = selfObject.nx_navigationTransitionState;
if (state != NXNavigationTransitionStateUnspecified) {
NXDebugLog(@"popViewController 时上一次的转场尚未完成,系统会忽略本次 pop,等上一次转场完成后再重新执行 pop, viewControllers = %@", selfObject.viewControllers);
}

// 系统文档里说 rootViewController 是不能被 pop 的,当只剩下 rootViewController 时当前方法什么事都不会做
BOOL willPopActually = selfObject.viewControllers.count > 1 && action == NXNavigationTransitionStateUnspecified;
BOOL willPopActually = selfObject.viewControllers.count > 1 && state == NXNavigationTransitionStateUnspecified;
if (!willPopActually) {
return callSuperBlock();
}
Expand Down Expand Up @@ -225,13 +225,13 @@ + (void)load {
return callSuperBlock();
}

NXNavigationTransitionState action = selfObject.nx_navigationTransitionState;
if (action != NXNavigationTransitionStateUnspecified) {
NXNavigationTransitionState state = selfObject.nx_navigationTransitionState;
if (state != NXNavigationTransitionStateUnspecified) {
NXDebugLog(@"popToViewController 时上一次的转场尚未完成,系统会忽略本次 pop,等上一次转场完成后再重新执行 pop, currentViewControllers = %@, viewController = %@", selfObject.viewControllers, viewController);
}

// 系统文档里说 rootViewController 是不能被 pop 的,当只剩下 rootViewController 时当前方法什么事都不会做
BOOL willPopActually = selfObject.viewControllers.count > 1 && [selfObject.viewControllers containsObject:viewController] && selfObject.topViewController != viewController && action == NXNavigationTransitionStateUnspecified;
BOOL willPopActually = selfObject.viewControllers.count > 1 && [selfObject.viewControllers containsObject:viewController] && selfObject.topViewController != viewController && state == NXNavigationTransitionStateUnspecified;
if (!willPopActually) {
return callSuperBlock();
}
Expand Down Expand Up @@ -268,12 +268,12 @@ + (void)load {
return callSuperBlock();
}

NXNavigationTransitionState action = selfObject.nx_navigationTransitionState;
if (action != NXNavigationTransitionStateUnspecified) {
NXNavigationTransitionState state = selfObject.nx_navigationTransitionState;
if (state != NXNavigationTransitionStateUnspecified) {
NXDebugLog(@"popToRootViewController 时上一次的转场尚未完成,系统会忽略本次 pop,等上一次转场完成后再重新执行 pop, viewControllers = %@", selfObject.viewControllers);
}

BOOL willPopActually = selfObject.viewControllers.count > 1 && action == NXNavigationTransitionStateUnspecified;
BOOL willPopActually = selfObject.viewControllers.count > 1 && state == NXNavigationTransitionStateUnspecified;
if (!willPopActually) {
return callSuperBlock();
}
Expand Down Expand Up @@ -323,8 +323,11 @@ + (void)load {

for (UIViewController *viewController in viewControllers) {
viewController.navigationItem.nx_viewController = viewController;
// 先赋值一次
viewController.nx_configuration = selfObject.nx_configuration;
if (!viewController.nx_configuration) {
// 先赋值一次
// fixed: https://github.com/l1Dan/NXNavigationExtension/issues/23
viewController.nx_configuration = selfObject.nx_configuration;
}
viewController.nx_prepareConfigureViewControllerCallback = selfObject.nx_prepareConfigureViewControllerCallback;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,8 @@ public extension View {
/// Text("NXNavigationExtension")
/// .padding()
/// .useNXNavigationView(onTransitionViewController: { action in
/// switch interactiveType {
/// case .backButtonAction, .backButtonMenuAction, .callNXPopMethod, .popGestureRecognizer:
/// switch action {
/// case .clickBackButton, .clickBackButtonMenu, .callingNXPopMethod, .popGestureRecognizer:
/// /// Do something...
/// return false
/// default:
Expand Down

0 comments on commit 51af5ec

Please sign in to comment.