1. 程式人生 > >關於tabbar再次點選重新整理那些

關於tabbar再次點選重新整理那些

剛好在做專案的時候 發現有很多APP有tabbar再次點選重新整理的功能,其中“騰訊新聞”的做的效果最好,於是網上查了點資料,但是大都是 複製-貼上的模式,而且有各種不清不楚的問題,於是自己隨便寫了下,自己的思路

1.在AppDelegate.h中新增一個屬性用來標記tabbar上次的點選(大部分的專案最後都是在AppDelegate設定UITabBarController為根控制器)

/**    標記tabbar上次的點選 並且賦初值 小於0的都可以  我這裡是賦初值為-1 */

@property (nonatomic, assign)NSInteger index;
2.設定UITabBarController的代理UITabBarControllerDelegate為AppDelegate

3.代理方法中處理

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    //1.先判斷當前點選的index是否與標記的相等(所以初值 self.index = -1 了巧妙的實現了再次點選的功能)
    if (self.index == tabBarController.selectedIndex) {
        //2.通過發通知,交給響應的控制器去做具體的操作,傳入self.index是為了具體區分標記做判斷
        [[NSNotificationCenter defaultCenter] postNotificationName:@"再次點選了" object:@(self.index)];
    }
    //3.再把點選的index賦值給標記的self.index

    self.index = tabBarController.selectedIndex;
   
}