diff --git a/keyBoard/Class/Base/V/KBCustomTabBar.m b/keyBoard/Class/Base/V/KBCustomTabBar.m index 1618d44..43c7964 100644 --- a/keyBoard/Class/Base/V/KBCustomTabBar.m +++ b/keyBoard/Class/Base/V/KBCustomTabBar.m @@ -99,9 +99,8 @@ - (void)buttonTapped:(UIButton *)button { NSInteger index = button.tag; if (index != self.selectedIndex) { - self.selectedIndex = index; - [self updateButtonStates]; - + // 先通知 delegate,由 delegate 决定是否允许切换(如登录拦截) + // delegate 允许时会主动调用 setSelectedIndex: 来更新状态 if ([self.delegate respondsToSelector:@selector(customTabBar: didSelectItemAtIndex:)]) { [self.delegate customTabBar:self didSelectItemAtIndex:index]; diff --git a/keyBoard/Class/Base/VC/BaseTabBarController.m b/keyBoard/Class/Base/VC/BaseTabBarController.m index 2deaaec..a958b9d 100644 --- a/keyBoard/Class/Base/VC/BaseTabBarController.m +++ b/keyBoard/Class/Base/VC/BaseTabBarController.m @@ -154,12 +154,15 @@ - (void)customTabBar:(KBCustomTabBar *)tabBar didSelectItemAtIndex:(NSInteger)index { - // 登录检查 + // 登录检查:未登录时跳登录页,不切换 Tab,不更新选中状态 if ((index == 1 || index == 2 || index == 3) && ![KBUserSessionManager shared].isLoggedIn) { [[KBUserSessionManager shared] goLoginVC]; return; } + // 更新自定义 TabBar 的选中状态 + [self.customTabBar setSelectedIndex:index]; + // 切换 VC self.selectedIndex = index;