本節將實現重新浪的接口獲取到用戶的未讀消息數,並顯示在底部的Tabbar上,經過定時器每隔幾秒請求新浪的接口,而後將得到的各類消息數經過badgeValue顯示出來。git
在Home(首頁)/Model/userUnreadCount/目錄下寫模型
github
代碼:
請求參數ui
// 請求參數繼承自IWBaseParam // IWUserUnreadCountParam.h // ItcastWeibo // // Created by kaiyi on 16-6-18. // Copyright (c) 2016年 itcast. All rights reserved. // #import "IWBaseParam.h" @interface IWUserUnreadCountParam : IWBaseParam /** * 須要查詢的用戶ID。 */ @property (nonatomic, strong) NSNumber *uid; @end
返回參數數據模型atom
// 返回參數數據模型 // IWUserUnreadCountResutl.h // ItcastWeibo // // Created by kaiyi on 16-6-18. // Copyright (c) 2016年 itcast. All rights reserved. // #import <Foundation/Foundation.h> @interface IWUserUnreadCountResutl : NSObject // 新微薄未讀數 @property (nonatomic, assign) int status; // 新粉絲數 @property (nonatomic, assign) int follower; // cmt @property (nonatomic, assign) int cmt; // 新私信數 @property (nonatomic, assign) int dm; // 新通知未讀數 @property (nonatomic, assign) int notice; // 新說起個人微博數 @property (nonatomic, assign) int mention_status; // 新說起個人評論數 @property (nonatomic, assign) int mention_cmt; // 未讀消息的總數 -(int)messageCount; @end
在Main(主要)/Controller/IWTabBarViewController.m目錄中發送請求spa
- (void)viewDidLoad { [super viewDidLoad]; // 初始化tabbar [self setupTabbar]; // 初始化全部的子控制器 [self setupAllChildViewControllers]; [self checkUnreadCount]; // 定時檢查未讀數 [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(checkUnreadCount) userInfo:nil repeats:YES]; } // 定時檢查未讀數 -(void)checkUnreadCount { // 1.請求參數 IWUserUnreadCountParam *param = [IWUserUnreadCountParam param]; param.uid = @([IWAccountTool account].uid); // 2.發送請求 [IWUserTool userUnreadCountWithParam:param success:^(IWUserUnreadCountResutl *result) { // 3.設置badgeValue // 3.1首頁 self.home.tabBarItem.badgeValue = [NSString stringWithFormat:@"%d", result.status]; self.message.tabBarItem.badgeValue = [NSString stringWithFormat:@"%d", result.messageCount]; self.me.tabBarItem.badgeValue = [NSString stringWithFormat:@"%d", result.follower]; } failure:^(NSError *error) { }]; }
經過下拉刷新,清除提醒數字:
Home(首頁)/Controller/IWHomeViewController.mcode
/** * 刷新數據(向新浪獲取更新的微博數據) */ - (void)loadNewData { // 0.清除提醒數據 self.tabBarItem.badgeValue = nil; // 1.封裝請求參數 // 其餘代碼省略 }
動態圖:
orm
項目源代碼,請看Github:微博開發項目源代碼blog