需求
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了蓬萊免費建站歡迎大家使用!
之前已經(jīng)實現(xiàn)了自定義TabBar,如圖所示:
自定義TabBar.jpeg
現(xiàn)在需要實現(xiàn)一個類似今日頭條TabBar的功能 —— 如果繼續(xù)點擊當(dāng)前TabBar的選中項,那么該界面需要刷新UITableView。
分析
既然已經(jīng)自定義了TabBar,那么最簡單的就是在自定義中給TabBar中需要的UITabBarButton添加事件 —— 點擊就發(fā)送通知,并且將當(dāng)前的索引傳出去。對應(yīng)的界面監(jiān)聽通知,拿到索引比對,如果和當(dāng)前索引一致,就執(zhí)行對應(yīng)的操作。
實現(xiàn)
1. 自定義TabBar的layoutSubviews中綁定事件
- (void)layoutSubviews { [super layoutSubviews]; for (UIButton * tabBarButton in self.subviews) { if ([tabBarButton isKindOfClass:NSClassFromString(@"UITabBarButton")]) { //監(jiān)聽tabbar的點擊 //綁定tag 標(biāo)識 tabBarButton.tag = index; //監(jiān)聽tabbar的點擊 [tabBarButton addTarget:self action:@selector(tabBarButtonClick:) forControlEvents:UIControlEventTouchUpInside]; } } }
2. 監(jiān)聽事件,發(fā)送通知
- (void)tabBarButtonClick:(UIControl *)tabBarBtn{ //判斷當(dāng)前按鈕是否為上一個按鈕 //再次點擊同一個item時發(fā)送通知出去 對應(yīng)的VC捕獲并判斷 if (self.previousClickedTag == tabBarBtn.tag) { [[NSNotificationCenter defaultCenter] postNotificationName: @"DoubleClickTabbarItemNotification" object:@(tabBarBtn.tag)]; } self.previousClickedTag = tabBarBtn.tag; }
對應(yīng)的UIViewController監(jiān)聽通知
- (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(doubleClickTab:) name:@"DoubleClickTabbarItemNotification" object:nil]; }
3. 監(jiān)聽到通知,比對后執(zhí)行操作
-(void)doubleClickTab:(NSNotification *)notification{ //這里有個坑 就是直接用NSInteger接收會有問題 數(shù)字不對 //因為上個界面?zhèn)鬟^來的時候封裝成了對象,所以用NSNumber接收后再取值 NSNumber *index = notification.object; if ([index intValue] == 1) { //刷新 } }
最終的效果請看:
總結(jié)
以上所述是小編給大家介紹的iOS開發(fā)中TabBar再次點擊實現(xiàn)刷新效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!
網(wǎng)頁名稱:iOS開發(fā)中TabBar再次點擊實現(xiàn)刷新效果
分享URL:http://aaarwkj.com/article8/gjogop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、響應(yīng)式網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站營銷、動態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)