我應該使用 的UIViewController派生類 分開我的應用程序的屏幕,通過屏幕 功能?
是的。
而且將我的應用程序基本上是手工 控制權交給這些視圖 控制器,然後這將構建 我的場景,它的組件之一?
是的,儘管很多風險投資公司只是從筆尖獲取他們的視圖樹,並且關注核心控制者的責任:1。將模型變化傳播到各種視野中;以及2.將視圖事件傳播回模型上的適當操作。我建議獲取InterfaceBuilder的掛件。這是不完美和煩人的,但它可以節省您的工作時間和代碼量。
如何切換到相關視圖控制器?
的許多方式:
- 如果你的風險投資商在導航控制器託管,
[[self navigationController] pushViewController:theNextVC animated:YES]
是一種常見的成語。
- 在一組風險投資組合之間切換時,最好用
UITabBarController
完成。
- 如果你想做模態疊加,
[self presentModalViewController:theNextVC animated:YES]
是如何。然而,比一兩個更深的Modal堆棧變得笨拙。
- 通過將它分配給你的窗口的rootViewController屬性(應用程序委託可以做到這一點,或主要的筆尖可以),在4.x中完成第一個VC的呈現。或通常在應用代理中找到的傳統方式4之前的版本:
[myMainWindow addSubview:[myInitialVC view]]
。
- 一些專門的蘋果提供的VC(視頻,照片選擇器)有他們自己的演示方法。
請注意,對於前兩種方法,如果您想要的行爲而不是UI小部件,您可以隱藏導航欄或選項卡欄並以編程方式執行所有操作。
我應該期待loadView被調用嗎?
它會,但大部分的「我現在出現!」邏輯屬於viewWillAppear:
(在過渡動畫開始之前調用,當視圖沒有父項時)以及viewDidAppear:
(在動畫完成後,在視圖完全可見時調用)。loadView
僅在VC認爲視圖很快需要時調用一次,並且不會再次調用,除非內存不足情況轉儲視圖並需要重新創建。
覆蓋loadView
當你想用一些其他視圖樹構造方法完全替換nib加載。我開始這樣做,但很少這樣做。
覆蓋viewDidLoad
當你仍然想要正常的筆尖加載發生,但也想做一些你自己的視圖樹構造/後處理。這是我發現自己在99%的時間內完成的。
當某些觸發器要求移動到屏幕B時,會調用「轉換」我的視圖,然後調用其他視圖控制器來「設置視圖」並將它們轉換爲?
如果您使用前面列出的任何演示方法,則會發生過渡。所有你需要做的是實現viewWill/DidAppear和朋友,當它發生時被告知。
您可能希望調查「TheElements」示例項目(在xcode文檔中搜索「元素」)根據要求,它不使用nibs;它以艱難的方式設置了代碼中的所有內容。它有很好的使用TabBarController和NavigationController的例子,並且或多或少以推薦的方式在VC之間分割責任。
哇,很多的話。隨意編輯這個只是你發現有用的位,如果有的話。 – rgeorge 2011-02-02 06:10:43