我在 SO 中找到了这个;它并不能完全回答我的问题,即:有没有办法在使用 Storyboards 并保持同步时将 UITableView 从一个控制器克隆到另一个控制器?
3 回答
您可以克隆它们,因为它们的初始属性值保持不变,如位置、布局等。为此,只需从故事板复制 UITableView,转到目标视图控制器并将其粘贴到那里。
如果你在两个视图控制器之间共享同一个 UITableView 对象,它仍然是可能的,但是你必须估计你自己需要做多少工作。当一个视图控制器只处理一个表格视图时,大部分工作都是在后台完成的,表格就交给你了。如果您的 UITableView 在两个视图控制器之间共享,您必须非常小心地使用它。您需要照顾视图的整个生命周期 - 请参阅常用方法,如viewDidLoad
,viewDidAppear
等等。当您的视图存在于两个场景中时,您将如何处理它们?也许你会发明一种独特的设计模式——如果你能找到最乐观和编程正确的方法来完成它。
使用情节提要,您无法实现克隆到数据更改将在两者之间无缝反映的水平。故事板,顾名思义,只是一个板,在您的代码接管之前,您可以在其中绘制东西以了解它们最初的外观。
为了实现您想要的,您必须创建一个共享模型,通过适当的委托方法更新两个表视图。很可能这样的模型(NSArray,或根据您的要求的任何此类集合)可以驻留在共享类中(应用程序委托不是错误的选择),您的两个视图控制器都可以从中引用它。这是一种巧妙的做法,它不仅从编程的角度来看是正确的,而且对于任何时候处理代码的人来说都是可扩展的和有帮助的。
有关如何从模型更新 UI 的详细信息,没有什么比从头开始更好的了,我的意思是翻阅书籍。
I think the best approach would be to use a framework such as the freely available Sensible TableView, then use the same model for both table views. This should be really straight forward.
我不知道这种可能性。
我会在不同的控制器之间传递 tableview 源对象,让视图控制器处理他们自己的表视图。