有關Nav和Tab屬性和方法的一些細節(jié)記錄

狀態(tài)欄的設置

情形:設置歡迎頁影藏,首頁顯示:
在info.plist里增加 Status bar is initially hidden,設置為yes
然后在首頁或者父類控制器里設置

    // MARK: - 狀態(tài)欄
    override var prefersStatusBarHidden: Bool{
        return false
    }

這里需要注意第二個方法:
1、如果ViewController不是UINavigationController的子類,調(diào)用 preferredStatusBarStyle 是可以改變狀態(tài)欄文字的顏色,相反則不能;

因為 UINavigationController 有自己的狀態(tài)欄,需要自己管理所以它的子類是不會走 preferredStatusBarStyle 方法;如果想要某個VC 改變,可以使用 UINavigationBar.barStyle屬性

self.navigationController?.navigationBar.barStyle = .black

或者 //隱藏導航欄后 系統(tǒng)會調(diào)用 preferredStatusBarStyle 方法

self.navigationController.navigationBarHidden=YES;

標題

  //tab和nav的title會全部更改:
    self.title = @"首頁";
   //nav會更改 tab不會更改:
    self.navigationItem.title = @"首頁";

導航欄顏色

    //修改導航欄的顏色
    self.navigationController.navigationBar.barTintColor = [UIColor orangeColor];

導航欄下個界面返回按鈕

    //修改導航欄下個界面返回按鈕的文字 注意 修改的是下一個界面的返回按鈕:
    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];

導航欄返回按鈕圖片

// 修改導航欄返回按鈕的圖片 返回按鈕圖片大小為42*42 這里不能直接按照下面的方式設置,不然當界面上有彈框UIAlertController時,圖片會向下偏移:
        let leftBBi = UIBarButtonItem(title: "", style: .plain, target: self, action: #selector(personalSettingBack))
        leftBBi.image = UIImage(named: "nav_back")
        leftBBi.tintColor = HHGK_WHITE_COLOR
        self.navigationItem.leftBarButtonItem = leftBBi

// 正確的做法應該是自定義一個按鈕, 然后設置為leftBarButtonItem:
        let backBtn = UIButton(type: .custom)
        backBtn.setImage(UIImage.init(named: "nav_back"), for: .normal)
        backBtn.tintColor = HHGK_WHITE_COLOR
        backBtn.frame = CGRect(x: 0, y: 0, width: 42, height: 42)
        backBtn.addTarget(self, action: #selector(personalSettingBack), for: .touchUpInside)
        
        let backBBi = UIBarButtonItem.init(customView: backBtn)
        
        self.navigationItem.leftBarButtonItem = backBBi

導航欄文字樣式

    //修改導航欄中間文字的樣式:
    [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor],NSFontAttributeName:[UIFont systemFontOfSize:16]}];
swift:
    self.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.white]

工具欄的顏色:

 //修改工具欄的顏色:
    self.tabBarController.tabBar.barTintColor = [UIColor grayColor];
//修改工具欄下面文字的顏色:
    self.tabBarController.tabBar.tintColor = [UIColor blackColor];  

透明

//把頂部這個navigationbar設置為透明呢,能夠讓下面的圖片顯示出來,但是返回按鈕不透明:
    [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];

線條

 //去掉導航欄下面的線條:
    self.navigationController.navigationBar.shadowImage = [UIImage new];

未選中與選中時的圖片

//設置UITabBarItem未選中與選中時的圖片:
   [_hotTabItem setFinishedSelectedImage:[UIImage imageNamed:@"1_selected"] withFinishedUnselectedImage:[UIImage imageNamed:@"1"]];

badgeValue

//設置UITabBarItem的badgeValue:
  //指定界面
   [self.tabBarController.tabBar.items objectAtIndex:2].badgeValue = [NSString stringWithFormat:@"%ld", ++ goodsCount];
  //當前界面
        _mine.navigationController.tabBarItem.badgeValue = [NSString stringWithFormat:@"%ld", count];
  //為0時清除
      _mine.navigationController.tabBarItem.badgeValue = nil;

tabBar樣式

//設置tabBar樣式

[[UITabBarItemappearance]setTitleTextAttributes:@{NSForegroundColorAttributeName:[selfmyThemeColor]}forState:UIControlStateSelected];

[[UITabBarItemappearance]setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColorredColor]}forState:UIControlStateNormal];

//選中的顏色(圖片+圖片下面文字的顏色,iOS8.0以后被廢棄了)

self.tabBarController.tabBar.selectedImageTintColor= [selfmyThemeColor];

//未選中的顏色(圖片+圖片下面文字的顏色,沒被廢棄)

self.tabBarController.tabBar.unselectedItemTintColor= [UIColorgreenColor];

dismiss回到目標控制器

// dismiss方式回到目標控制器:
/*
(1) presentedViewController:The view controller that is presented by this view controlller(read-only),被本視圖控制器present出來的的視圖控制器(只讀)
(2) presentingViewController:The view controller that presented this view controller. (read-only),present出來本視圖控制器的視圖控制器(只讀)
*/
        UIViewController *vc = self.presentingViewController;
        while (![vc isKindOfClass:[TFTravelllerLoginViewController class]]) {
        
            vc = vc.presentingViewController;
        }
        
        [vc dismissViewControllerAnimated:YES completion:nil];

push到下個界面隱藏tabBar pop回去顯示tabBar

// 注意是設置目標控制器的hidesBottomBarWhenPushed屬性
EaseMessageViewController *messageVc = [[EaseMessageViewController alloc] initWithConversationChatter:contactName conversationType:EMConversationTypeChat];
messageVc.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:messageVc animated:YES];

pop回到目標控制器

//pop方式回到目標控制器:
        for (UIViewController *disVc in self.navigationController.viewControllers) {
            
            if ([disVc isKindOfClass:[TFTravelllerLoginViewController class]]) {
                [self.navigationController popToViewController:disVc animated:YES];
            }
        }

UISearchBar自定義

    searchBar.backgroundImage = [CzyTools imageWithColor:[UIColor colorWithHexString:@"#F5F5F5"]];
    searchBar.backgroundColor = [UIColor clearColor];
    [searchBar setSearchFieldBackgroundImage:[CzyTools imageWithColor:[UIColor colorWithHexString:@"#F5F5F5"]] forState:UIControlStateNormal];
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,533評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,055評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,365評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,561評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,346評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,889評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,978評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,118評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,637評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,558評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,739評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,246評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 43,980評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,619評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,347評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,702評論 2 370

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,147評論 4 61
  • 相逢不飲空杯去,洞口桃花也笑人。 朋友難得,好朋友更難得,幾十年的好朋友更是難得,所以應當好好珍惜面前的朋友,所有...
    九小飛閱讀 686評論 4 0
  • 參考書目 《用圖秀演講》 一個精彩的故事可以為演講增色。如何講好故事呢?書中給我們分享了一個講故事的好辦法,即“美...
    萌小Q在路上閱讀 295評論 8 9
  • 今年暑假小叔從浙江回來看望爺爺奶奶,去年因為手頭上還有事情,所以就沒有回家。不經(jīng)意間就是兩個...
    晨曦朦朧歲月靜好閱讀 343評論 1 3
  • 我上輩子大概是個車夫。 小時候一旦汽車飛馳而過,定會猛嗅一口濃烈的汽油味,叫一聲“好香”。有次到鎮(zhèn)上的...
    維揚客閱讀 187評論 0 2