IOS學習筆記,ios學習資料

來源:互聯網
上載者:User

IOS學習筆記,ios學習資料

1.建立控制器的三種方式:

2.程式啟動時會去尋找Main Interface,如果找到Main Interface則會自動載入預設的storyboard,載入的過程大致為以下幾步:

3.storyboard載入後使用instantiateViewControllerWithIdentifier:@"storyboardId"方法也可以獲得storyboard的ViewController對象。

4.同樣可以使用alloc init建立控制器對象然後設定為根控制器的方式來顯示頁面,但是添加控制項就必須使用代碼了。

5.storyboard需要主動載入,即使storyboard設定為MyViewController,如果通過alloc init建立ViewController而不是通過載入storyboard,那麼storyboard(包括其中的控制項)不會自動進行載入。

6.為參考,如果MyViewController實現了loadView方法,則會執行loadView中的方法而不去載入storyboard或者xib檔案(在負載檔案之前),如果沒有實現,再去尋找storyboard或者與nibName對應的xib,找不到nibName的時候會先去找與控制器類名去除Controller後相同檔案名稱的xib檔案,如果還未找到則找與控制器類名完全相同的xib檔案。

7.在調用[self.window makeKeyAndVisible]方法的時候會因為要顯示window,然後會調用window的根控制器,然後調用根控制器的view,因為是懶載入,如果之前設定了myvc.view的某些屬性,則當時就會立即去繪製view,成功繪製出View後會調用viewDidLoad方法(此過程中只會調用一次)。另一張圖可能會更加清楚些,不過忽略了xib。

8.通過使用UINavigationController的pushViewController方法可以做到介面的跳轉,最後push進去的則最先顯示。(用棧來說的話,就是出棧,銷毀棧頂的控制器以及View,顯示新棧頂的View)

9.四種方法實現給NavigationContoller添加子控制項:

10.進棧與出棧的方法

1 // 使用push方法能讓某個控制器進棧 2 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated; 3 4 // 使用pop方法可以出棧 5 6 // 將棧頂的控制器移除 7 - (UIViewController *)popViewControllerAnimated:(BOOL)animated; 8 9 // 回到指定的子控制器10 - (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;11 12 // 回到根控制器(棧底控制器)13 - (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;進棧和出棧

11.棧頂ViewController的navigationBar返回按鈕是由次棧頂的ViewController中的backBarButtonItem決定的。只要對次棧頂的BackBarButtonItem進行賦值UIBarButtonItem就可以修改返回鍵的標題。

12.控制器的View預設是佔滿整個螢幕的。

13.通過拖線設定navigationController的rootViewController屬性可以設定根控制器。

14.storyboard直接拖NavigationCotroller,然後通過拖線串連的方式串連ViewController,segue選擇push。(在IOS7的時候還是能選擇push,但是在ios8的時候,xcode6.1.1版本上push已經變成了不建議使用,有新的名為show的方法可以替代,起到同樣效果,暫時不知道有什麼優點)

15.觀察控制器生命週期的方法:

16.生命週期參考圖:

17.記憶體警告處理參考圖:

 

 

剛開始寫沒幾天,只是對我每天所學知識的一個記錄,寫的很亂,如果有錯還望指正。

/!-- 灰色表示以後研究。--/

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.