控制器和聲明周期

多控制器管理

pch文件

  1. ** 創(chuàng)建PCH文件 **
  2. ** 系統(tǒng)內(nèi)增加PCH文件(pre搜索) **

** 注意:PCH文件的路徑為真實(shí)路徑.不是bounds路徑就可以了. **
作用:

  1. 導(dǎo)入公用的頭文件
  2. 導(dǎo)入公用的宏(全局宏)
  3. 自定義NSLog(系統(tǒng)的NSLog非常消耗cpu,所以定義NSLog減少消耗,進(jìn)行測(cè)試.
  4. 如果有c文件存在,會(huì)產(chǎn)生沖突,C中編譯無法識(shí)別OC(加條件編譯,OC時(shí)才才執(zhí)行).

首先因?yàn)槭窃谥笆褂玫耐瞥鰏wift后就暫停系統(tǒng)自動(dòng)創(chuàng)建了,我們手動(dòng)創(chuàng)建時(shí)需要配置系統(tǒng)根目錄文件.

pch文件中常用代碼
 //如果有C文件還要加判斷不然報(bào)很多錯(cuò)誤 
#ifdef __OBJC__
//全局宏
#define M 32
//導(dǎo)入共用的頭文件
#import "ZLPerson.h"
//調(diào)試時(shí)可以使用自定義的NSLog,上線不能使用
#ifdef DEBUG
//在DEBUG下才替換NSLog
#define ZLLog(...) NSLog(__VA_ARGS__)

#else
//否則自定義的打印方式不走任何替換
#define ZLLog(...)

#endif
#endif

UIApplication

  1. 單例設(shè)計(jì)模式

  2. 可以設(shè)置角標(biāo)

          0. 獲取程序?qū)ο?      1. 創(chuàng)建遠(yuǎn)程通知設(shè)置對(duì)象 UIUserNotificationSettings 類型對(duì)象
          2. iOS8.0之后需要注冊(cè) 程序?qū)ο笞?cè) [app registerUserNotificationSettings:settings] 
          3. 設(shè)置角標(biāo)
    

app.applicationBadgeNumber.
4. 允許顯示通知

  1. app對(duì)象設(shè)置狀態(tài)欄(必須先添加info.plist 的View controller-based status bar appearance為no)
  2. 網(wǎng)絡(luò)指示器(聯(lián)網(wǎng)的圖標(biāo))networkActivityIndicator屬性.網(wǎng)絡(luò)菊花
  3. 分享:鏈接對(duì)象(NSNRL 創(chuàng)建時(shí)@"http://www.baidu.com")電話tel,短訊msm,郵件等.

UIApplication的代理方法作用

//了解這些方法什么時(shí)候開始調(diào)用,并且** 自己手動(dòng)添加一個(gè)接受內(nèi)存警告的方法.(因?yàn)榇矸椒ㄏ仁盏絻?nèi)存警告) **

  1. didfinishlaunching啟動(dòng)
  2. background后臺(tái)
  3. foreground前臺(tái)

程序啟動(dòng)的過程

1.打開程序-->2.執(zhí)行main函數(shù)-->3.執(zhí)行UIApplicationMain函數(shù)(各個(gè)參數(shù)的含義:第三個(gè)??)-->4.初始化UIApplication(創(chuàng)建和設(shè)置代理對(duì)象,開啟循環(huán)事件)-->5.監(jiān)聽系統(tǒng)事件.-->6.結(jié)束程序.

手動(dòng)在空白程序中創(chuàng)建控制器添加window和view(關(guān)閉storyBoard作為程序入口)

  1. 創(chuàng)建UIWindow(代理中有window屬性)
  2. 創(chuàng)建控制器對(duì)象(控制器被創(chuàng)建時(shí)就自帶一個(gè)view屬性.
  3. 將控制器對(duì)象作為window對(duì)象(rootViewController屬性)的根控制器
  4. 設(shè)置window對(duì)象(keyWindow)為可視化.

控制器的三種創(chuàng)建方式.

  1. alloc init
  2. board
    1.
  3. XIB(注意設(shè)置file`s Owner)的兩個(gè)重要點(diǎn)
    1. 指定名字
    2. 同名
    3. 同名去掉controller

控制器中的UIView的創(chuàng)建(采用的是懶加載的方式)

控制器創(chuàng)建好以后, 控制器所管理的View是如何創(chuàng)建的?

  1. 控制器的View是通過調(diào)用控制器的loadView方法來創(chuàng)建的缀去。這個(gè)方法是UIViewController中的一個(gè)方法瞎访。
    ** 只要控制器的loadView方法被調(diào)用了, 那么證明控制器的View創(chuàng)建好了字柠。

  2. 當(dāng)調(diào)用完畢控制器的loadView方法以后, 從這時(shí)開始, 才創(chuàng)建好了控制器的view

  3. 當(dāng)控制器的View被創(chuàng)建好以后, 緊接著就調(diào)用控制器的viewDidLoad方法

  4. 控制器的View采用了懶加載的方式, 也就是說, 在需要的使用(在用到的時(shí)候)才會(huì)創(chuàng)建(調(diào)用loadView方法)。

** 注意: 無論控制器是如何創(chuàng)建的, 只要在控制器中, 重寫了("實(shí)現(xiàn)了")loadView方法, 并且沒有調(diào)用[super loadView]方法, 那么最終控制器的View就必須完全在loadView方法中自己來創(chuàng)建了启妹。所以loadView方法可以用來自定義View。

多控制器

  1. 導(dǎo)航控制器
    navigationItem屬性的具體內(nèi)容:
  • title屬性

  • titleView屬性

  • leftBarButtonItem // 只能設(shè)置左上角的一個(gè)按鈕

  • leftBarButtonItems // 可以設(shè)置左上角有多個(gè)按鈕

  • rightBarButtonItem // 只能設(shè)置右上角的一個(gè)按鈕

  • rightBarButtonItems // 可以設(shè)置右上角有多個(gè)按鈕

  • backBarButtonItem // 設(shè)置下一個(gè)控制器, 左上角的按鈕。默認(rèn)情況下鸟废,該按鈕文字與上一個(gè)控制器的title文字相同。

  1. UITabBarController

控制器的生命周期

當(dāng)控制器被創(chuàng)建加載一次會(huì)調(diào)用系統(tǒng)的這些方法

1. loadView                加載view
2. viewDidLoad             已經(jīng)加載view
3. viewWillAppear          view將要被顯示
4. viewWillLayoutSubviews  view將要布局子控件
5. viewDidlayoutSubviews   view已經(jīng)布局子控件
6. viewDidAppear           view已經(jīng)顯示 
7. viewWillDisAppear       view將要消失
8. viewDidDisAppear        view已經(jīng)消失
9. delloc方法銷毀.          控制器銷毀
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末姑荷,一起剝皮案震驚了整個(gè)濱河市盒延,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鼠冕,老刑警劉巖添寺,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異懈费,居然都是意外死亡计露,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門憎乙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來票罐,“玉大人,你說我怎么就攤上這事泞边「醚海” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵阵谚,是天一觀的道長(zhǎng)蚕礼。 經(jīng)常有香客問我烟具,道長(zhǎng),這世上最難降的妖魔是什么奠蹬? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任朝聋,我火速辦了婚禮,結(jié)果婚禮上囤躁,老公的妹妹穿的比我還像新娘冀痕。我一直安慰自己,他們只是感情好狸演,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布金度。 她就那樣靜靜地躺著,像睡著了一般严沥。 火紅的嫁衣襯著肌膚如雪猜极。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天消玄,我揣著相機(jī)與錄音跟伏,去河邊找鬼。 笑死翩瓜,一個(gè)胖子當(dāng)著我的面吹牛受扳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播兔跌,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼勘高,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了坟桅?” 一聲冷哼從身側(cè)響起华望,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仅乓,沒想到半個(gè)月后赖舟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夸楣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年宾抓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豫喧。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡石洗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出紧显,到底是詐尸還是另有隱情讲衫,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布鸟妙,位于F島的核電站焦人,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏重父。R本人自食惡果不足惜花椭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望房午。 院中可真熱鬧矿辽,春花似錦、人聲如沸郭厌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)折柠。三九已至宾娜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扇售,已是汗流浹背前塔。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留承冰,地道東北人华弓。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像困乒,于是被迫代替她去往敵國(guó)和親寂屏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

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