GeekBand-IOS實戰(zhàn)-第二周

viewController

MVC架構(gòu)(Model—View—Controller)是弱耦合思想的衍生產(chǎn)物

MVC

UIViewController

它是IOS里面的一個類,是UI和DATA之間的橋梁
更多的時候它是一套API
用來管理viewcontroller

管理view以下的一些操作

  • 傳遞數(shù)據(jù)
  • 響應用戶操作
  • 內(nèi)存管理屎勘、狀態(tài)保持
  • 適應設(shè)備

ViewController是一個View控制器,他是一個輕量級的類
View是圖形界面仲吏,會比較龐大,加載起來也會比較消耗資源
然后蝌焚,ViewController就會控制界面在被觸發(fā)時才加載
主要的應用程序windows通過MakeKayAndVisi加載

每一個獨立的場景就應該是一個ViewController
可以用如下代碼寫一個viewcontroller
-[presentViewController:(要顯示的VIEW 一般寫self) animated:(YES/NO)completion:nil]

彈出模式
彈出模式

彈出模態(tài)ViewController是iOS變成中很有用的一個技術(shù)裹唆,UIKit提供的一些專門用于模態(tài)顯示的ViewController,如UIImagePickerController等只洒。彈出模態(tài)ViewController主要使用于以下這幾種情形:
1许帐、收集用戶輸入信息
2、臨時呈現(xiàn)一些內(nèi)容
3毕谴、臨時改變工作模式
4成畦、相應設(shè)備方向變化(用于針對不同方向分別是想兩個ViewController的情況)
5、顯示一個新的view層級
這幾種情形都會暫時中斷程序正常的執(zhí)行流程析珊,主要作用是收集或者顯示一些信息。

通過設(shè)置presenting VCmodalPresentationStyle屬性蔑穴,我們可以設(shè)置彈出View Controller時的類型忠寻,有以下四種類型,定義如下:
<pre><code>typedef enum{

UIModalPresentationFullScreen = 0,

UIModalPresentationPageSheet,

UIModalPresentationFormSheet,

UIModalPresentationCurrentContext,

} UIModalPresentationStyle;
</pre></code>

UIModalPresentationFullScreen代表彈出VC時存和,presented VC充滿全屏奕剃,如果彈出VC的wantsFullScreenLayout設(shè)置為YES的衷旅,則會填充到狀態(tài)欄下邊,否則不會填充到狀態(tài)欄之下纵朋。

UIModalPresentationPageSheet代表彈出是彈出VC時柿顶,presented VC的高度和當前屏幕高度相同,寬度和豎屏模式下屏幕寬度相同操软,剩余未覆蓋區(qū)域?qū)儼挡⒆柚褂脩酎c擊嘁锯,這種彈出模式下,豎屏時跟UIModalPresentationFullScreen的效果一樣聂薪,橫屏時候兩邊則會留下變暗的區(qū)域家乘。

UIModalPresentationFormSheet模式下,presented VC的高度和寬度均會小于屏幕尺寸藏澳,presented VC居中顯示仁锯,四周留下變暗區(qū)域。

UIModalPresentationCurrentContext模式下翔悠,presented VC的彈出方式和presenting VC的父VC的方式相同业崖。

這四種方式在iPad上面統(tǒng)統(tǒng)有效,但在iPhone和iPod
touch上面系統(tǒng)始終以UIModalPresentationFullScreen模式顯示presented VC蓄愁。

Modal Transition Style(彈出時的動畫風格)

通過設(shè)置設(shè)置presenting VC的modalTransitionStyle屬性双炕,我們可以設(shè)置彈出presented VC時場景切換動畫的風格,其定義如下:
<pre><code>typedef enum {

UIModalTransitionStyleCoverVertical = 0,//底部滑入

UIModalTransitionStyleFlipHorizontal, //水平翻轉(zhuǎn)進入

UIModalTransitionStyleCrossDissolve, //交叉溶解

UIModalTransitionStylePartialCurl, //翻頁

} UIModalTransitionStyle;
</pre></code>

storyBoard

程序的本質(zhì)就是一個場景切換到另一個場景

storyBoard的工作就是涝登,記錄有多少個場景雄家,如何從一個場景進去另一個場景

tip:當創(chuàng)建了兩個場景,縮小后胀滚,無法直接在場景內(nèi)放組件趟济,需要雙擊進入這個場景才能放組件。

storyBoard
storyBoard
創(chuàng)建并給view指定自定義的viewController

segue

segue

圖片中間的一條線就是segue

我們可以用代碼觸發(fā)Segue
<pre><code>
-(IBAction)
actionWithSugue :(id) Sender {

[self performSegueWithIdentifier:@"Segue" sender:sender];

}
</pre></code>

用代碼顯示StoryBoard里的VC
<pre><code>
-(IBAction)actionGo:(id)sender
{

Id vc2 = [self.storyboard
instantiateViewConrollerWithIdentifier:@"vc2"]; //把它實例化

[self showViewContorller:vc2
sender:sender];// 再跳過去

}</pre></code>

如果不是在同一個storyBoard的話就需要加載

-[UIStoryboard storyboardWithName:@"" bundle:]

如何添加多個storyBoard.png

如何返回

使用UnwindingForSugue方法

<pre><code>
-(IBAction)unwindForHome:(UIStoryboardSegue*)unwindSegue

towardsViewController:(UIViewController*)subsequentVC

{

}

</pre></code>

App Lifecycle

整個程序的邏輯就是一個個ViewController協(xié)作完成的事件
可視的起點是UIWindow

不要在Application: willFinishLaunchingWithOptions:內(nèi)放特別耗時的動作

添加斷點

Navigation導航

Navigation會在所有管理的view中存在的一個導航

添加導航

Tabbar controller

Tabbar controller 管理的是一組viewcontroller

它的界面呈現(xiàn)在頁面最下方

Tab Bar Contreller
tabBar屬性

手動把viewcontroller添加進tabbarcontroller
tabBarController中按住control+鼠標咽笼,拖動至想連接的view

把viewcontroller添加進tabbarcontroller

在不同場景傳值的話需要用到以下方法
<pre><code>
-(void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender

{

}
</pre></code>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末顷编,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子剑刑,更是在濱河造成了極大的恐慌媳纬,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,080評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件施掏,死亡現(xiàn)場離奇詭異钮惠,居然都是意外死亡,警方通過查閱死者的電腦和手機七芭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評論 3 385
  • 文/潘曉璐 我一進店門素挽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人狸驳,你說我怎么就攤上這事预明∷跞” “怎么了?”我有些...
    開封第一講書人閱讀 157,630評論 0 348
  • 文/不壞的土叔 我叫張陵撰糠,是天一觀的道長酥馍。 經(jīng)常有香客問我,道長阅酪,這世上最難降的妖魔是什么旨袒? 我笑而不...
    開封第一講書人閱讀 56,554評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮遮斥,結(jié)果婚禮上峦失,老公的妹妹穿的比我還像新娘。我一直安慰自己术吗,他們只是感情好尉辑,可當我...
    茶點故事閱讀 65,662評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著较屿,像睡著了一般隧魄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上隘蝎,一...
    開封第一講書人閱讀 49,856評論 1 290
  • 那天购啄,我揣著相機與錄音,去河邊找鬼嘱么。 笑死狮含,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的曼振。 我是一名探鬼主播几迄,決...
    沈念sama閱讀 39,014評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冰评!你這毒婦竟也來了映胁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,752評論 0 268
  • 序言:老撾萬榮一對情侶失蹤甲雅,失蹤者是張志新(化名)和其女友劉穎解孙,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抛人,經(jīng)...
    沈念sama閱讀 44,212評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡弛姜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,541評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了妖枚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廷臼。...
    茶點故事閱讀 38,687評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出中剩,到底是詐尸還是另有隱情,我是刑警寧澤抒寂,帶...
    沈念sama閱讀 34,347評論 4 331
  • 正文 年R本政府宣布结啼,位于F島的核電站,受9級特大地震影響屈芜,放射性物質(zhì)發(fā)生泄漏郊愧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,973評論 3 315
  • 文/蒙蒙 一井佑、第九天 我趴在偏房一處隱蔽的房頂上張望属铁。 院中可真熱鬧,春花似錦躬翁、人聲如沸焦蘑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽例嘱。三九已至,卻和暖如春宁舰,著一層夾襖步出監(jiān)牢的瞬間拼卵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評論 1 266
  • 我被黑心中介騙來泰國打工蛮艰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留腋腮,地道東北人。 一個月前我還...
    沈念sama閱讀 46,406評論 2 360
  • 正文 我出身青樓壤蚜,卻偏偏與公主長得像即寡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子仍律,可洞房花燭夜當晚...
    茶點故事閱讀 43,576評論 2 349

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