我正在嘗試學習iPhone的編程,並且我一直看到這些文件,我不確定每個文件和這些文件的內容在爲iPhone構建的程序的執行過程中提及的內容。我正在嘗試關注網上提供的教程和技巧,但是沒有任何一個是通過點比較或類似的方式。如果你們中的任何人能列出幾個基本的區別,比如每個文件被引用的時間以及理想地應該進入每個文件等等,那將是非常好的。感謝您的時間已經。RootViewController,AppDelegate和我可能創建的View Controller類之間有什麼區別?
回答
通常,代表可以被認爲是事件處理程序。因此,AppDelegate是整個應用程序的主要事件處理程序。它告訴應用何時啓動,什麼時候它會退出,什麼時候發送推送通知,應用何時進入後臺等等。其中一個事件 - applicationDidFinishLaunching - 通常負責創建應用的窗口並添加視圖到那個窗口。
在大多數應用程序中,添加到窗口的視圖實際上由UIViewController控制。每個UIViewController負責管理一個主視圖及其所有子視圖的外觀。例如,UITableViewController負責管理插入到該UITableView中的UITableView(主視圖)和所有UITableViewCells(子視圖)。 UIViewController通常充當其負責的視圖的委託(事件處理程序)。當用戶點擊表格視圖單元格時,將調用UITableViewController中的方法。當用戶滑動刪除一個單獨的方法時被調用。
通用UIViewController提供了相同的基本功能,但對於自定義視圖。例如,UIViewController可能負責顯示幾個文本視圖和一個按鈕。 UIViewController將創建它的主視圖,文本視圖和按鈕視圖。文本視圖和按鈕視圖將作爲子視圖添加到視圖控制器的主視圖中。 UIViewController將自己註冊爲文本視圖中事件的委託(例如,當用戶在文本視圖中完成編輯文本時的學習)。它還會註冊一個方法來處理源自按鈕的按鈕。當任何這些註冊事件發生時,UIViewController上的方法被調用,允許您採取任何需要的操作。
rootViewController是與導航控制器一起使用的特定類型的視圖控制器。如果你想要一個具有典型的iOS導航視圖層次結構的應用程序,你的AppDelegate通常會在應用程序的窗口中添加一個UINavigationController。該UINavigationController沒有實際的內容顯示是無用的。這是rootViewController進場的地方。您有責任提供視圖控制器(如上面描述的視圖控制器)作爲存儲在UINavigationController的視圖堆棧中的第一個視圖。該視圖將在應用程序啓動時隨時顯示,並隨時從UINavigationController的堆棧中彈出後續ViewController。
囉嗦我意識到 - 但希望它有幫助。
- 1. View和View Controller有什麼區別?
- 2. {{view}}和{{#view}}之間有什麼區別
- 3. Front Controller和View Helper之間的區別
- 4. 不可變類和可變類之間有什麼區別?
- 5. AppDelegate,RootViewController和UIApplication之間的關係是什麼?
- 6. 返回View()和返回base.View()之間有什麼區別?
- 7. MySQL數據庫中TABLE和VIEW之間有什麼區別?
- 8. 「遷移:創建」和「遷移:生成」之間有什麼區別?
- 9. DMA-Engine和DMA-Controller有什麼區別?
- 10. ViewModel和Controller有什麼區別?
- 11. 創建和新建有什麼區別?
- 12. 「層」和「層」之間有什麼區別?
- 13. Tableau和QlikView之間有什麼區別
- 14. Microsoft.CompilerServices.AsyncTargetingPack和Microsoft.Bcl.Async之間有什麼區別?
- 15. @Entity和@embeddable之間有什麼區別
- 16. ContentObservable和DataSetObservable之間有什麼區別?
- 17. touchmove和gesturechange之間有什麼區別?
- 18. :notification.flags和notification.defaults之間有什麼區別?
- 19. proc和lambda之間有什麼區別?
- 20. :: after和after之間有什麼區別?
- 21. read()和io.read()之間有什麼區別?
- 22. Request()和Request.Form()之間有什麼區別?
- 23. WebServiceBinding.EmitConformanceClaims和WebServiceBinding.ConformanceClaims之間有什麼區別?
- 24. getA()和this.getA()之間有什麼區別?
- 25. (int)和intval()之間有什麼區別?
- 26. set_value和= pandas之間有什麼區別
- 27. * zoom和zoom之間有什麼區別?
- 28. {0}和「」之間有什麼區別?
- 29. typedef和using之間有什麼區別?
- 30. 「」和「'之間有什麼區別?
完全有幫助。謝謝。我還有一個問題,如果它不要求太多,如果你可以看看它會很好:http://stackoverflow.com/questions/3651265/sqlite3-step-keeps-returning-sqlite-誤用此查詢任何指針。無論如何,感謝這個答案。 – kumar 2010-09-06 12:03:08
關於AppDelegate,UIWindow,UIViewController,主視圖,子視圖等之間的關係的真棒解釋仍然在2012年底有效。非常感謝 – Philip007 2012-11-03 07:38:28
感謝@Peter,絕對是每種對象角色最有用和最簡潔的解釋之一。謝謝。 – 2016-09-18 17:01:57