IOS博客項目搭建-21-提醒數字

本節將實現重新浪的接口獲取到用戶的未讀消息數,並顯示在底部的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

相關文章
相關標籤/搜索