双击tabBar按钮事件构建

给项目添加一个双击tabBar按钮,实现界面刷新的功能很常见,但是iOS并未提供这一功能,所以只能用单击事件结合两次之间的单击时间间隔来模拟双击,下面是我自己实现的双击tabBar按钮功能:

@property (nonatomic, strong) NSDate *lastDate; //记录上次点击tabbar的时间,用于双击判断

#pragma mark - UITabBarControllerDelegate
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
    //获取单击的NavigationController
    KCNavigationController *nc = (KCNavigationController *)viewController;
    NSDate *date = [NSDate date];
    if ([self isEqual:nc.topViewController]) {
        //处理双击事件
        if (date.timeIntervalSince1970 - _lastDate.timeIntervalSince1970 < 0.5) {
        //完成一次双击后,重置第一次单击的时间,区分3次或多次的单击
            _lastDate = [NSDate dateWithTimeIntervalSince1970:0];
            [self refresh];
            return NO;
        }
        _lastDate = date;
    }
    return YES;
}

你可能感兴趣的:(IOS)