Swift基礎(chǔ)之神奇的導(dǎo)航條

先來(lái)介紹一下導(dǎo)航條的基礎(chǔ)知識(shí):

一厕隧、UINavgationController-導(dǎo)航控制器

我們先來(lái)看一段簡(jiǎn)單的代碼:

  //在AppDelegate中創(chuàng)建導(dǎo)航控制器,并設(shè)置它為根視圖
   let root:RootViewController = RootViewController()
   let nav = UINavigationController(rootViewController: root)
   self.window!.rootViewController = nav
   //在RootViewController中設(shè)置標(biāo)題(title)和item
   self.title = "第一頁(yè)"
   let nextItem = UIBarButtonItem(title: "下一頁(yè)", style:.Plain, target: self, action: #selector(RootViewController.nextPage))
   self.navigationItem.rightBarButtonItem = nextItem

   //方法實(shí)現(xiàn)
   func nextPage()
        //推出下一頁(yè)
        let vc = ViewController()
        svc.delegate = self
        self.navigationController!.pushViewController(vc, animated: true)
   }

在這段簡(jiǎn)單的代碼中矫限,主要實(shí)現(xiàn)了設(shè)置導(dǎo)航控制器為根視圖法绵,并實(shí)現(xiàn)推出下一頁(yè)的功能。當(dāng)然我們還可以對(duì)導(dǎo)航控制器的導(dǎo)航條UINavgationBar進(jìn)行屬性設(shè)置:

   //設(shè)置navgationBar的顏色
   nav.navigationBar.barTintColor = UIColor.clearColor()
   //關(guān)閉navigationBar的毛玻璃效果 
   /***在設(shè)置背景圖片的時(shí)候會(huì)出現(xiàn)與圖片顏色不對(duì)的情況涧狮,只要將translucent設(shè)置成false就OK啦***/
   nav.navigationBar.translucent = false
關(guān)于navgationBar的圖片設(shè)置簡(jiǎn)單說(shuō)明一下:
  • 不同尺寸的圖片效果不同:
    1.320 * 44,只會(huì)給navigationBar附上圖片
    2.高度小于44,以及大于44且小于64:會(huì)平鋪navigationBar以及狀態(tài)條上顯示
    3.高度等于64:整個(gè)圖片在navigationBar以及狀態(tài)條上顯示

     nav.navigationBar.setBackgroundImage(UIImage(named: "background"), forBarMetrics:.Compact)
    //它有四種狀態(tài)Default,Compact,CompactPrompt,DefaultPrompt炕矮,大家可以根據(jù)自己的需求來(lái)修改
    

常用的也就是這些,如有不足大家可以在評(píng)論上說(shuō)明者冤,大臉貓會(huì)及時(shí)添加的哦肤视。

二、push和pop

在前面那段簡(jiǎn)單的代碼中小伙伴們已經(jīng)看到了涉枫,大臉貓用到了push邢滑,實(shí)現(xiàn)了從RootViewController到ViewController的跳轉(zhuǎn)。下面我們來(lái)詳細(xì)的介紹一下push和pop的用法愿汰。

push:

  self.navigationController?.pushViewController(viewController, animated: true)
我先來(lái)介紹一個(gè)每個(gè)參數(shù):
  • 參數(shù)1:你要push到的控制器
  • 參數(shù)2:是否活動(dòng)殊鞭,這個(gè)參數(shù)一般情況下都是true

pop:

  //返回到上一個(gè)頁(yè)面
  self.navigationController?.popViewControllerAnimated(animated: true)
  //返回到指定頁(yè)面
  self.navigationController?.popToViewController(root, animated: true)
  //返回到根視圖控制器
  self.navigationController?.popToRootViewControllerAnimated(true)

三、UIBarButtonItem

細(xì)心的小伙伴們應(yīng)該會(huì)發(fā)現(xiàn)尼桶,在上面那段代碼中操灿,我已經(jīng)使用過(guò)一次UIBarButtonItem了,代碼是這個(gè)樣子的:

   let nextItem = UIBarButtonItem(title: "下一頁(yè)", style:.Plain, target: self, action: #selector(RootViewController.nextPage))
   self.navigationItem.rightBarButtonItem = nextItem

這兩行代碼實(shí)現(xiàn)了UIBarButtonItem的創(chuàng)建和事件的添加泵督,還有就是設(shè)置它右邊的item趾盐。
我們?cè)賮?lái)看看其他的創(chuàng)建方式:

    //帶文字
    let barBtn = UIBarButtonItem(title: "next", style: .Done, target: self, action: #selector(RootViewController.nextPage))
    //帶背景圖片
    let barBtn = UIBarButtonItem(image: UIImage(named: "background"), style: .Done, target: self, action: #selector(RootViewController.nextPage))
    //帶背景圖片和手機(jī)風(fēng)景圖片
    let barBtn = UIBarButtonItem(image: UIImage(named: "background"), landscapeImagePhone: UIImage(named: "background_1"), style: .Done, target: self, action: #selector(RootViewController.nextPage))
    //設(shè)置位置在左邊還是在右邊
    self.navigationItem.rightBarButtonItem = barBtn
    self.navigationItem.leftBarButtonItem = barBtn
    //自定義視圖
    let barButton = UIBarButtonItem(customView: button)

四、UINavgationController的代理方法

導(dǎo)航條也是有代理的哦小腊,但是用的不是很多救鲤,我們來(lái)了解一下

    self.navigationController?.delegate = self;//設(shè)置代理
    //代理方法
    func navigationController(navigationController: UINavigationController,       willShowViewController viewController: UIViewController, animated: Bool) {

    }
    func navigationController(navigationController: UINavigationController, didShowViewController viewController: UIViewController, animated: Bool) {

    }

簡(jiǎn)單的基礎(chǔ)知識(shí)就先介紹到這里,后面有時(shí)間還會(huì)發(fā)布有關(guān)導(dǎo)航條側(cè)滑的實(shí)現(xiàn)和導(dǎo)航條的其他功能秩冈,( _ )/~~拜拜

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末本缠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子入问,更是在濱河造成了極大的恐慌丹锹,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芬失,死亡現(xiàn)場(chǎng)離奇詭異楣黍,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)棱烂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)租漂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事哩治⊥翰龋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵业筏,是天一觀的道長(zhǎng)吞瞪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)驾孔,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任惯疙,我火速辦了婚禮翠勉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘霉颠。我一直安慰自己对碌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布蒿偎。 她就那樣靜靜地躺著朽们,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诉位。 梳的紋絲不亂的頭發(fā)上骑脱,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音苍糠,去河邊找鬼叁丧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛岳瞭,可吹牛的內(nèi)容都是我干的拥娄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼瞳筏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼稚瘾!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起姚炕,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤摊欠,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后柱宦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體凄硼,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年捷沸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了摊沉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡痒给,死狀恐怖说墨,靈堂內(nèi)的尸體忽然破棺而出骏全,到底是詐尸還是另有隱情,我是刑警寧澤尼斧,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布姜贡,位于F島的核電站,受9級(jí)特大地震影響棺棵,放射性物質(zhì)發(fā)生泄漏楼咳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一烛恤、第九天 我趴在偏房一處隱蔽的房頂上張望母怜。 院中可真熱鬧,春花似錦缚柏、人聲如沸苹熏。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)轨域。三九已至,卻和暖如春杀餐,著一層夾襖步出監(jiān)牢的瞬間干发,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工史翘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铐然,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓恶座,卻偏偏與公主長(zhǎng)得像搀暑,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子跨琳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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

  • { 11自点、核心動(dòng)畫(huà) 需要簽協(xié)議,但是系統(tǒng)幫簽好 一脉让、CABasicAnimation 1桂敛、創(chuàng)建基礎(chǔ)動(dòng)畫(huà)對(duì)象 CAB...
    CYC666閱讀 1,547評(píng)論 2 4
  • *7月8日上午 N:Block :跟一個(gè)函數(shù)塊差不多,會(huì)對(duì)里面所有的內(nèi)容的引用計(jì)數(shù)+1溅潜,想要解決就用__block...
    炙冰閱讀 2,488評(píng)論 1 14
  • //準(zhǔn)備工作 1.刪除Main 2.ARC->MRC(YES->No) 3.刪除文件(ViewConTroller...
    愛(ài)吃芒果的淼小豬閱讀 391評(píng)論 1 1
  • 春節(jié)期間术唬,攜家?guī)Э趶纳虾;氐搅撕崩霞夜隼剑诳h城與鄉(xiāng)村各待了幾天粗仓。故鄉(xiāng)風(fēng)貌有改變,但依稀還是那個(gè)格局和脈絡(luò)。新建了許...
    青青子衿灼灼其華閱讀 283評(píng)論 0 0
  • woop: 愿望:今天上午9點(diǎn)—12點(diǎn)完成淘寶頭條10篇文章 結(jié)果:這個(gè)任務(wù)是一天中量最大的任務(wù)借浊,如果我完成了塘淑,那...
    Huifre7閱讀 91評(píng)論 0 0