[iOS 開發(fā)基礎]- 多控制器跳轉

需求一:我們制作APP的不可能一個界面來實現所有需求的祖今,我們需要多個界面的跳轉。每個界面各自實現對應的需求,代碼實現多控制器之間的跳轉大致分為三類。一類是使用UINavigationController 跳轉 渐逃,一類是使用UITabBarController 實現多個控制器之間的跳轉够掠,還有一類是使用presentViewController( UIViewController, animated: animated

, completion:completion)實現跳轉民褂。

1.UINavigationController :

實現跳轉:使用UINavigationController要注意的是要設置根控制器,之后的跳轉都是根據根控制器來完成跳轉疯潭。設置根控制器代碼如下:

// 設置根控制器

let nav = UINavigationController(rootViewController:ViewController())

*使用UINavigationController時使用push和pop來實現跳轉赊堪,代碼如下:

navigationController.pushViewController(目標控制器, animated: true/false)

navigationController.popToViewController(回退上一個控制器,?true/false )

navigationController.popToRootViewControllerAnimated(true/false)

*注意push是跳轉到目標控制器,而pop是回退到上個控制器竖哩,popToRootView是直接回退根控制器哭廉。

*在使用UINavigationController跳轉時,UINavigationController會給所有目標控制器套上“導航欄”相叁,完成push之后遵绰,會自動在“導航欄”上生成一個返回item,點擊返回item會執(zhí)行pop方法返回到上一個控制器增淹。

總結:使用UINavigationController跳轉時椿访,UINavigationController的外觀只需要設置一次,之后派生的“導航欄”都會保持根控制器的外觀虑润。設置外觀需要在initialize方法中設置外觀代理對象(appearance)來完成設置成玫,注意的是initialize是類方法。

2.UITabBarController :

實現跳轉:使用UITabBarController注意的是拳喻,要同時把所有要跳轉的控制器都一次設置完成哭当。UITabBarController的子控制器是同時存在的,在跳轉目標子控制器時不會釋放其他子控制器冗澈。設置子控器的方法大致分為兩種钦勘,一種是通過addChildViewController:ViewController?完成設置自控制器,這種方法每次只能設置一個子控制器亚亲。要設置多個子控器的時候可以使用viewControllers來設置多個子控制器个盆,viewControllers 返回的是一個數組脖岛,使用時,創(chuàng)建完控制器颊亮,將控制器放入數組柴梆,然后直接賦值即可。需要注意的數組中的順序终惑,就是tabBar展示控制器的順序绍在,具體代碼如下:

1).使用addChildViewController

self.addChildViewController:ViewController1()

self.addChildViewController:ViewController2()

self.addChildViewController:ViewController3()

2).使用viewControllers

self.viewControllers = [ViewController1(),ViewController2(),ViewController3()]

*跳轉時,直接點擊“標簽欄”上的barButtonItem即可

3.presentViewController??:

實現跳轉: 使用presentViewController可以跳轉任意控制器雹有,但是在跳轉完成之后偿渡,如果要返回就要完成dismiss方法。presentViewController跳轉的特點是從屏幕下方推出直到覆蓋完整個屏幕,效果還是蠻好的霸奕,值得注意的是在完成dismiss方法之后溜宽,presentViewController會從內存釋放。具體代碼如下:

presentViewController(ViewController1() , animated: true/false , completion: nil)

* completion是完成跳轉之后執(zhí)行的回調质帅,我們一般填nil适揉。

* 在跳轉完成一之后一定要首先寫dismiss方法

dismissViewControllerAnimated(true/false, completion:nil)

*這樣就完成了返回,同時該控制器也會從控制器中釋放煤惩。

總結:這樣完成了多個界面之間跳轉嫉嘀。

需求二:當然控制器之間的跳轉還可以使用sb,使用sb很簡單直接拖線show即可魄揉。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末剪侮,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子洛退,更是在濱河造成了極大的恐慌瓣俯,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兵怯,死亡現場離奇詭異彩匕,居然都是意外死亡,警方通過查閱死者的電腦和手機摇零,發(fā)現死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門推掸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人驻仅,你說我怎么就攤上這事谅畅。” “怎么了噪服?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵毡泻,是天一觀的道長。 經常有香客問我粘优,道長仇味,這世上最難降的妖魔是什么呻顽? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮丹墨,結果婚禮上廊遍,老公的妹妹穿的比我還像新娘。我一直安慰自己贩挣,他們只是感情好喉前,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著王财,像睡著了一般卵迂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绒净,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天见咒,我揣著相機與錄音,去河邊找鬼挂疆。 笑死改览,一個胖子當著我的面吹牛,可吹牛的內容都是我干的囱嫩。 我是一名探鬼主播恃疯,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼漏设,長吁一口氣:“原來是場噩夢啊……” “哼墨闲!你這毒婦竟也來了?” 一聲冷哼從身側響起郑口,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤鸳碧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后犬性,有當地人在樹林里發(fā)現了一具尸體瞻离,經...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年乒裆,在試婚紗的時候發(fā)現自己被綠了套利。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡鹤耍,死狀恐怖肉迫,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情稿黄,我是刑警寧澤喊衫,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站杆怕,受9級特大地震影響族购,放射性物質發(fā)生泄漏壳贪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一寝杖、第九天 我趴在偏房一處隱蔽的房頂上張望违施。 院中可真熱鬧,春花似錦瑟幕、人聲如沸醉拓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亿卤。三九已至,卻和暖如春鹿霸,著一層夾襖步出監(jiān)牢的瞬間排吴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工懦鼠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留钻哩,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓肛冶,卻偏偏與公主長得像街氢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子睦袖,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內容

  • 筆記 Xmind PPT 1-控制器管理 控制器以及view的多種創(chuàng)建方式 UINavigationControl...
    CoderZXS閱讀 441評論 0 0
  • 前言的前言 唐巧前輩在微信公眾號「iOSDevTips」以及其博客上推送了我的文章后珊肃,我的 Github 各項指標...
    VincentHK閱讀 5,379評論 3 44
  • 1> 什么是多控制器之間的跳轉? 在一個 APP 中,會存在多個控制器,多個控制器的存在就會存在控制器的跳轉問題....
    Brice_Zhao閱讀 582評論 0 2
  • 1.自定義控件 a.繼承某個控件 b.重寫initWithFrame方法可以設置一些它的屬性 c.在layouts...
    圍繞的城閱讀 3,404評論 2 4
  • 多控制器切換. 1.概述. 在iOS開發(fā)中,視圖的切換是很頻繁的,常用的視圖切換如下: UITabBarContr...
    ValienZh閱讀 1,979評論 0 6