版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337801
最近在看《百思不得姐》这个项目,其中有一个功能:在某个页面再次点击此页面的tabBarButton会刷新此页面。
首先要判断点击的tabBarButton是否已经被选中,如果被选中,则再次点击会刷新页面。当然这个判断不是本篇博客要说明的问题,本篇博客要说明的是在确定某个tabBarButton已经被选中的情况下,再次点击所要触发的事件。
项目中将所要触发的事件以通知的形式通知给各个navigationController,每个navigationController对该通知进行接收。这里有一个问题,每次重复点击某个tabBarButton的时候都会发出通知,而tabBarController上所有navigationController都要接收此通知,从而进行页面的刷新。我们要求的是重复点击哪个页面的tabBarButton哪个页面进行刷新,而不是每个页面都进行刷新。我们所要解决的问题就是让没有被选中的页面不刷新。这也与本篇博客的题目相呼应:如何判断UITabBarController上的NavigationController没有被选中?
在每个navigationController中进行判断,代码:
[NSNotificationCenter defaultCenter addObserver:self selector:@selector(didClickRepeat) name:@"刷新" object:nil];
if (self.view.window == nil) {
NSLog(@"当前控制器没有被选中...");
}else{
NSLog(@"当前控制器被选中");
}
}
代码很简答,可之前却没有想到。