1视图控制器中数据的不同表示

时间:2014-07-29 19:58:26

标签: swift ios8 xcode6 xcode-storyboard

我正在使用Xcode 6和Swift。

我有一些数据,我希望使用分段控件以两种或三种不同的方式表示。

第一个视图是一个列表,第二个是网格,第三个是带有一些标签的表。

尽管外观不同,但它们都来自相同的数据源。

实现这一目标的合理方法是什么?

我应该将3个视图拖动到1个控制器(同一个视图控制器)上,并在每个视图中完成所有设计/故事板,根据需要添加约束,然后只显示/隐藏每个视图吗?

是否有不同或更好的方法来做到这一点,或者这是对的吗?

非常感谢!

2 个答案:

答案 0 :(得分:0)

看看这个要求,我觉得TabViewController是最好的。使用分段控制器,您需要自己处理切换视图。您可以拥有一个带有3个viewControllers的TabViewController,这些视图控制器可以从您的数据源中获取所需的饮水器数据。

答案 1 :(得分:0)

有效而清晰地有两种优雅的方式。

1)您可以为每3个视图使用不同的xib,并在运行时加载不同视图的相应xib。如果您有小而清晰的视图,则应使用此approch。工作量不大需要像dataSourcedelgations一样处理。三个视图将只由一个视图控制器管理。它将使您的所有视图分离并且易于管理。您可以加载不同的视图如

//Your view property
var uiview :UIView?
//load nib from bundle in view    
self.uiview = NSBundle.mainBundle().loadNibNamed("myXib", owner: self, options: nil)[0] as? UIView

2)使用container viewcontroller。通过执行此操作,您可以将不同的控制器添加到您的父控制器。这种方法非常干净,因为不同的控制器处理不同的视图但很难写。如果你这样做每个视图都需要做大量工作。请参阅WWDC视频以获得更多帮助https://developer.apple.com/videos/wwdc/2011/?id=102

我认为在您的情况下,1st方法适合使用三种不同的xib并在运行时加载它并添加为subview的{​​{1}}