【问题标题】:Different Representations of Data in 1 View Controller1个视图控制器中数据的不同表示
【发布时间】:2014-07-29 19:58:25
【问题描述】:

我正在使用 Xcode 6 和 Swift。

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

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

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

实现这一目标的明智方法是什么?

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

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

非常感谢!

【问题讨论】:

    标签: swift ios8 xcode6 xcode-storyboard


    【解决方案1】:

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

    【讨论】:

    • 谢谢 - 如果我已经在使用 TabViewController 来做其他事情(更高级别、更分层/更有组织)怎么办? :)
    【解决方案2】:

    有两种优雅的方法可以有效而清晰地做到这一点。

    1)您可以为每 3 个视图使用不同的 xib,并在运行时加载不同视图的适当 xib。如果您的视图小而清晰,则应使用此方法。无需处理太多工作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 并在运行时加载它并添加为您的 viewControllersubview

    【讨论】:

    • 谢谢 - 请原谅我的无知,但是 xib 是一个过时的东西,通常不再在 Xcode 中使用(或在故事板之前使用的东西),还是 xib 是即使使用 Swift 也能期待的基本东西?跨度>
    • 哦,还有,我只是使用分段控件将用户带到 3 个不同的视图控制器有什么问题吗?这里和那里会有一些代码重复,可能有 5-10 行。
    猜你喜欢
    • 1970-01-01
    • 2015-06-26
    • 2017-03-16
    • 2023-03-31
    • 1970-01-01
    • 2014-01-08
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多