IOS开发(九):场景
一、多場(chǎng)景故事板
1、基礎(chǔ)
視圖控制器(ViewController):負(fù)責(zé)管理用戶與其IOS設(shè)備交互的類;
場(chǎng)景(Scene):視圖控制器和視圖的獨(dú)特組合;
切換(Segue):切換是場(chǎng)景的過(guò)渡,常使用視覺(jué)過(guò)渡效果;
模態(tài)視圖(Modal View):在需要進(jìn)行用戶交互時(shí),通過(guò)模態(tài)視圖顯示在另一個(gè)視圖上;
關(guān)系(Relationship):類似于切換,用于某些類型的視圖控制器,如選項(xiàng)卡欄控制器。關(guān)系是在主選項(xiàng)卡欄的按鈕之間創(chuàng)建的,當(dāng)用戶觸摸這些按鈕時(shí)會(huì)顯示獨(dú)立的場(chǎng)景;
故事板(Storyboard):包含項(xiàng)目中場(chǎng)景、切換和關(guān)系定義的文件。
故事板提供了一個(gè)空間,讓用戶能夠以可視化方式描述應(yīng)用程序的設(shè)計(jì)和工作流程。每個(gè)場(chǎng)景都是一個(gè)用戶將遇到的屏幕。每個(gè)切換都是場(chǎng)景間過(guò)渡。
2、簡(jiǎn)單示例
1)、創(chuàng)建一個(gè)新的項(xiàng)目,選擇Single View模式,只包含一個(gè)視圖控制器和視圖,也就是說(shuō)只包含一個(gè)場(chǎng)景。
2)、在故事板中添加場(chǎng)景:在IB中打開(kāi)storyBoard,在對(duì)象庫(kù)中選取View Controller,將其拖動(dòng)到IB編輯器的空白區(qū)域,這樣就在故事板中成功地添加了一個(gè)視圖控制器和相應(yīng)的視圖,從而新增了一個(gè)場(chǎng)景。
3)、給場(chǎng)景命名
? ? 默認(rèn)情況下,每個(gè)場(chǎng)景都會(huì)根據(jù)其視圖控制器類來(lái)命名,在項(xiàng)目中已經(jīng)有一個(gè)名為ViewController的類了,所以在文檔大綱中,默認(rèn)場(chǎng)景名為ViewController Scene。而現(xiàn)在新增的場(chǎng)景還沒(méi)有為其指定視圖控制器類,所以該場(chǎng)景也名為ViewController Scene。如果繼續(xù)添加更多的場(chǎng)景,這些場(chǎng)景也都會(huì)被命名為ViewController Scene。
? ? 為了解決同名問(wèn)題,有兩種辦法:
? ? 一是添加視圖控制器類,并將其指定給新場(chǎng)景;
? ? 二是根據(jù)自己的意思來(lái)給場(chǎng)景指定名稱,這樣往往更有意義。
選擇視圖控制器,打開(kāi)屬性Identity Inspector并展開(kāi),然后在文本框Label中輸入場(chǎng)景名。Xcode將自動(dòng)在后面添加Scene,因此我們無(wú)須添加Scene。
? ??
4)、添加提供支持的視圖控制器子類
? ? 在故事板中添加新場(chǎng)景后,需要將其與代碼關(guān)聯(lián)起來(lái)。在模板Single View Application中,已經(jīng)將初始視圖的視圖控制器配置成了類ViewController的一個(gè)實(shí)例,并且有它的ViewController.h和ViewController.m文件。
同樣,現(xiàn)在為了支持新的場(chǎng)景,需要在項(xiàng)目中添加UIViewController的子類。添加辦法是在項(xiàng)目導(dǎo)航器可見(jiàn)的情況下,點(diǎn)擊左下角的"+"按鈕,然后選擇"NewFile"選項(xiàng)。
? ??
最后將新添加的類加入項(xiàng)目,點(diǎn)擊Create按鈕,就好了。
這時(shí)候,新場(chǎng)景就像是一個(gè)新的應(yīng)用程序,和默認(rèn)的場(chǎng)景是彼此獨(dú)立的,不能在該場(chǎng)景和原來(lái)的場(chǎng)景之間交換數(shù)據(jù),也不能在它們之間過(guò)渡。
5)、創(chuàng)建切換
? ? 最簡(jiǎn)單的方式是,在第一個(gè)場(chǎng)景上添加一個(gè)按鈕,按住Control鍵,拖動(dòng)到第二個(gè)場(chǎng)景,松開(kāi)鼠標(biāo)會(huì)彈出一個(gè)故事板切換框:
一般選擇modal(模態(tài))過(guò)渡,其它切換用于特殊情形,且僅在這些情形下才管用。
將切換加入到項(xiàng)目后,可以看到兩個(gè)場(chǎng)景之間有一條線將它們連接在一起:
現(xiàn)在運(yùn)行項(xiàng)目,點(diǎn)擊默認(rèn)場(chǎng)景的Button按鈕,會(huì)跳出第二個(gè)場(chǎng)景。
注:
從開(kāi)始到現(xiàn)在,都沒(méi)有編寫任何代碼,就能在場(chǎng)景之間切換。但是這有它的局限性:
不能以編程方式與這樣的切換交互;
切換到目標(biāo)視圖后,就不能返回到原來(lái)的視圖,為了返回到原來(lái)的視圖,需要編寫代碼。
轉(zhuǎn)載于:https://www.cnblogs.com/xsjayz/archive/2013/04/10/3012635.html
總結(jié)
以上是生活随笔為你收集整理的IOS开发(九):场景的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【IT笔试面试题整理】字符串的排列
- 下一篇: C#中的几种加密算法整理