tabBar item 双击刷新,回到顶部

定义全局变量

@property (nonatomic, assign) NSInteger      previousClickedTag;//记录上次点击item 的  index
@property (nonatomic, strong) NSDate         *lastSelectedDate; //记录最后一次点击item 的时间

点击代理事件中处理

 //再次点击同一个item时发送通知出去 对应的VC捕获并判断
    if (self.previousClickedTag == selectedIndex) {
        
        // 获取当前点击时间
        NSDate *currentDate = [NSDate date];
        CGFloat timeInterval = currentDate.timeIntervalSince1970 - _lastSelectedDate.timeIntervalSince1970;
        // 两次点击时间间隔少于 0.5S 视为一次双击
        if (timeInterval < 0.5) {
            // 通知首页刷新数据
            if(selectedIndex == 0){
                NSLog_Ngdy(@"是双击。。。通知首页刷新");
            }else if(selectedIndex == 1){
                NSLog_Ngdy(@"是双击。。。通知分类刷新");
            }else if (selectedIndex == 2){
                NSLog_Ngdy(@"是双击。。。通知发现刷新");
            }
            // 双击之后将上次选中时间置为1970年0点0时0分0秒,用以避免连续三次或多次点击
            _lastSelectedDate = [NSDate dateWithTimeIntervalSince1970:0];
        
        }
        // 若是单击将当前点击时间复制给上一次单击时间
        _lastSelectedDate = currentDate;
    }
    self.previousClickedTag = selectedIndex;

相应控制器中处理

刷新  置顶   操作

你可能感兴趣的:(tabBar item 双击刷新,回到顶部)