工作中遇到的关于页面刷新跳转的问题

在项目后期修改bug的时候,有一个页面分为两个tab页面,刷新显示a页面,但是当b页面修改保存后刷新要求留在本页面,由于代码是别人写的,当时在js中开始找在哪里加载的页面,进行了刷新,但是代码各种套,并没有准确找到。

首先刷新之后肯定是加载了页面的,也就是肯定会调用js中的初始化函数。

所以可以在两个tab点击的时候在storage中setItem分别绑定不同的值(注意要在点击的源里设置)。然后不管他是从哪里重新刷新的页面,只要在页面初始化方法中getItem获取绑定的值,就可以得到刷新之前点击的那个tab,默认刷新出现的tab页不用处理,只处理另一个不是刷新默认出现的tab页。

storage.setItem('personalMessage',1);

storage.setItem('personalMessage',0);

上面两个方法是点击tab时设置的值。

var personalMessageflag = storage.getItem('personalMessage’);

在初始化时获取之前set的值。


刷新页面,进入初始化函数,在函数中获取值后加入判断:

if(personalMessageflag == 1){

$('.badge_main').click();

}

ok了。
### iOS TabBarController 页面切换自动刷新数据 为了实现在 `UITabBarController` 切换页面时自动刷新数据,可以采用多种方法。一种常见的方式是在每次选中某个标签页时触发视图控制器的数据更新逻辑。 #### 使用 `tabBarController(_:didSelect:)` 方法监听选择变化 当用户选择了同的选项卡时,可以通过重写此代理方法来检测当前被选中的视图控制器并执行相应的操作: ```swift func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) { if let navVC = viewController as? UINavigationController, let targetVC = navVC.topViewController as? YourTargetViewControllerType { targetVC.refreshData() } } ``` 上述代码片段展示了如何利用委托模式捕获用户的交互行为,并针对特定类型的视图控制器调用其内部定义好的 `refreshData()` 函数来进行数据的重新加载[^1]。 #### 在 viewDidLoad 中设置观察者 另一种方式是让各个子视图控制器订阅通知中心的通知,在它们首次显示之后立即注册成为观察者,以便于每当该视图再次变得可见时都能接收到消息从而触发刷新动作: ```objc - (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshData:) name:UIApplicationDidBecomeActiveNotification object:nil]; } - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } ``` 这种方法适用于希望在整个应用程序进入前台时都强制刷新的情况[^2]。 #### 解决隐藏 tabBar 导致的问题 如果遇到因设置了 `hidesBottomBarWhenPushed=true` 而引起的视觉异常现象,则应该确保在返回到原页面前及时恢复默认状态 (`false`) ,防止必要的 UI 错乱发生[^3]: ```objc - (void)viewWillDisappear:(BOOL)animated { self.hidesBottomBarWhenPushed = NO; [super viewWillDisappear:animated]; } ``` 通过以上几种手段相结合,能够有效地达到预期效果——即每次切换至指定标签页时都能够顺利地完成数据的获取与展示工作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值