我在SO中發現this;它不完全回答我的問題,這是:有沒有辦法克隆 UITableView從一個控制器到另一個使用故事板並保持同步?如何將UITableView從一個控制器克隆到另一個控制器以保持同步?
回答
您可以克隆它們在某種意義上說,他們的初始屬性值保持不變,如位置,佈局等。對於這一點,剛剛從故事板複製的UITableView,去到目的地視圖控制器並將它粘貼在那裏。
如果您共享兩個視圖控制器之間相同的UITableView對象,它仍然是可能的,但你必須估計你會多少工作要做自己。當一個視圖控制器完全處理一個表視圖時,大部分工作都是在引擎蓋下完成的,而表格則交給你。如果你的UITableView在兩個視圖控制器之間共享,你將不得不非常小心地使用它。您需要關注視圖的整個生命週期 - 請參閱通常的方法,如viewDidLoad
,viewDidAppear
等。當你的觀點存在兩個場景時,你將如何照顧他們?也許你會創造出一種獨特的設計模式 - 如果你能找到最樂觀和程序化的方式來完成它。
通過故事板,您無法實現克隆,直到數據更改將無縫地反映在兩者之間。顧名思義,Storyboard就是一塊板子,在你的代碼接管之前,你可以畫出一些東西來了解它們最初的樣子。
爲了達到你想要什麼,你必須創建一個共享的模型,通過適當的委託方法更新了兩條表意見。很可能這樣的模型(NSArray,或任何這樣的集合,根據您的要求)可以駐留在共享類(應用程序委託不是錯誤的選擇),從你的視圖控制器可以引用它。這是一種整潔的做法,它不僅從編程的角度來看是對的,而且對任何時間處理代碼的人來說都是可擴展和有用的。
有關如何從模型更新UI的細節,沒有什麼比starting from scratch好,通過我指的是書去。
優秀!特別是第4段!謝謝... – SpokaneDude 2013-03-19 22:34:23
更不用說,您還可以使用觀察者模式讓您的UITableViewControllers知道您的共享模型的任何更改。這是很容易實現,閱讀Apple的文檔:https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html#//apple_ref/doc/uid/20000219-CHDDBJEJ – 2013-03-20 05:17:34
我不知道這種可能性。
我會在不同的控制器之間傳遞tableview源對象,並讓視圖控制器處理它們自己的表視圖。
我認爲最好的辦法是使用一個框架,如免費提供明智的TableView,然後用同樣的模型都表視圖。這應該是非常簡單的。
- 1. 將控制權從一個控制器重定向到另一個控制器
- 2. 如何將陣列從一個控制器共享到另一個控制器
- 3. 如何將對象從一個控制器傳遞到另一個控制器
- 4. 堅持從一個控制器到另一個控制器的數據
- 5. 從另一個控制器
- 6. 從另一個控制器
- 7. AngularJs如何從一個控制器切換到另一個控制器
- 8. 將錯誤消息從一個控制器傳遞到另一個控制器
- 9. MVC +將值從一個控制器傳遞到另一個控制器
- 10. 將數組從一個控制器傳遞到另一個控制器。 Laravel
- 11. 將值從一個控制器傳遞到另一個控制器
- 12. 從一個控制器向另一個控制器傳遞值
- 13. Angularjs,如何從另一個控制器調用控制器
- 14. Emberjs - 如何從另一個控制器」
- 15. 如何從另一個控制器
- 16. 如何從另一個控制1個視圖控制器?
- 17. 從控制器傳遞數據到另一個控制器
- 18. 如何將不同範圍從一個控制器綁定到另一個控制器?
- 19. 從一個UITableView控制器切換到視圖 - 控制
- 20. 如何一個控制器值更改爲另一個控制
- 21. 如何調用一個控制器的功能,從另一個控制器AngularJs
- 22. 如何將xml值保留到另一個控制器中xcode
- 23. 在Codeigniter中,將一個控制器擴展到另一個控制器中
- 24. 在symfony中傳遞從一個控制器到另一個控制器的值
- 25. ASP.Net MVC - 從一個控制器到另一個控制器(採取行動)
- 26. 在jmeter中從一個控制器訪問陣列到另一個控制器
- 27. 無法從一個控制器重定向到另一個控制器 - Spring MVC
- 28. 傳遞JSON數據從一個控制器到另一個控制器angularJS
- 29. 在Spring MVC中從一個控制器重定向到另一個控制器
- 30. 從控制器從另一個控制器在c#中的值#
我沒有使用故事板,所以我不能確定,但大概你設置了表視圖的數據源和委託的地方?如果是這樣,如果您在所有情況下都使用相同的實例,那麼表視圖應該保持同步。 – 2013-03-19 16:53:01
不能連接它們在IB - 不同的控制器... – SpokaneDude 2013-03-19 17:11:43