利用通知实现重复点击 tabbar 刷新当前页面功能

One:###

AppDelegate.m 文件中遵从 UITabBarControllerDelegate协议,并让根控制器成为代理,同时声明一个全局变量@property (nonatomic, assign) NSUInteger lastSelectedIndex;记录上一次点击的索引, 并实现以下方法

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
   if (tabBarController.selectedIndex == self.lastSelectedIndex) {
       [[NSNotificationCenter defaultCenter] postNotificationName:@"注册的通知名字" object:nil];
   }
   self.lastSelectedIndex = tabBarController.selectedIndex;
}

Two:###

来到你要实现该功能的控制器页面 在viewDidLoad方法里面注册通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refresh) name:@"注册的通知名字" object:nil];
- (void)refresh
{
    // 进行下拉刷新
    [self.tableView.mj_header beginRefreshing];
}

最后再移除掉通知

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

你可能感兴趣的:(利用通知实现重复点击 tabbar 刷新当前页面功能)