例如,如果我需要一個UITableView
出現下面在視圖中的附加內容,這將是最好的做法要麼:嵌入視圖控制器或添加子視圖會更好嗎?
- 添加
UITableView
作爲一個子視圖,或 - 添加保持的容器視圖
UITableViewController
?
就我所知,兩者都會提供相同的用戶體驗,但是我很想知道哪種方法會被認爲是最佳實踐?
例如,如果我需要一個UITableView
出現下面在視圖中的附加內容,這將是最好的做法要麼:嵌入視圖控制器或添加子視圖會更好嗎?
UITableView
作爲一個子視圖,或UITableViewController
?就我所知,兩者都會提供相同的用戶體驗,但是我很想知道哪種方法會被認爲是最佳實踐?
iOS的一般規則,特別是對於iPhone/iPod touch的外形規格,就是您在任何給定時間應該只有一個視圖控制器在屏幕上。當我們想要違反指南的時候,我能想到的唯一情況就是當你有一個內置了很多邏輯的子視圖時,子視圖需要被包含在多個其他視圖中。例如,彈出窗口應該有自己的視圖控制器,因爲它可能需要與多個其他視圖控制器一起顯示。除非(1)表視圖有很多與父視圖控制器的邏輯不相關的邏輯,否則我會強烈建議將UITableView作爲子視圖添加,或者(2)需要在應用程序的另一部分顯示相同的表格視圖。
您有幾種選擇:
UITableView
,使含有視圖控制器表視圖的數據源和委託。UITableView
併爲表視圖的數據源和委託創建其他一些類。選擇取決於適當的職責分工和封裝。
選項2 & 3允許重用,如果您需要將表視圖嵌入到多個視圖控制器中。
對您的問題沒有簡單的答案。這完全取決於您的需求,數據和應用程序的結構。
我寧願使用容器視圖控制器,原因如下:
最終,它們都是有效的解決方案。
每個控制器的每個視圖很容易編寫和調試。但是,您可以創建與相同視圖控制器(如數據源)交互的不同模型對象,並且委託可以是不同的對象。 – Sandeep