手把手教你做點(diǎn)擊tabbarItem彈出一個(gè)controller

前言

很多社交類App,都會(huì)在App的tabbar中間有一個(gè)拍照按鈕或者發(fā)布按鈕什么,然后比如你現(xiàn)在在首頁,點(diǎn)擊了加號(hào),這時(shí)會(huì)在這個(gè)首頁present出來一個(gè)頁面,然后點(diǎn)擊這個(gè)頁面的取消按鈕,你就會(huì)dismiss掉這個(gè)頁面,然后,頁面和tabbar上的已選Item,都停留在首頁上,下面就教大家怎么做這種效果。

實(shí)踐

效果是這樣的


效果圖

其實(shí)比較簡單,設(shè)置tabbarController的代理,實(shí)現(xiàn)代理方法

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
    // 如果點(diǎn)擊了中間的controller
    if (viewController.tabBarItem.tag == 3) {
        // 彈出一個(gè)controller
        PresentViewControlller *presentVC = [[PresentViewControlller alloc] init];
        [self presentViewController:presentVC animated:YES completion:nil];
        // 不允許選擇這個(gè)頁面頁面
        return NO;
    } else {
        return YES;
    }
}

這里比較重要的是,要給沒個(gè)viewController在初始化的時(shí)候,進(jìn)行tag的設(shè)定,以便進(jìn)行區(qū)分

viewController.tabBarItem.tag = ...;

然后,你會(huì)很想知道中間按鈕是怎么居中的,設(shè)置如下

viewController.tabBarItem.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0);

tabbarItem上的標(biāo)題也是可以挪動(dòng)的

viewController.tabBarItem.titlePositionAdjustment = UIOffsetMake(0, -3);

結(jié)語

具體參考,可以在git上下載我的demo
https://github.com/ZhaoheMHz/Tabbar-Tap-Present

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容