查看控制器和多个视图

时间:2016-02-08 22:05:15

标签: ios uiviewcontroller

我正在开发我的第一个iOS应用,并尝试了解有关视图和视图控制器的信息。

我的问题是:在像Instagram这样的应用程序中,有一个'活动'主Error: operand type mismatch for `fld' Error: operand type mismatch for `fst' 中的标签。活动标签有一个Tab Bar Controller用于"关注" &安培; "您"它显示类似的数据,但查询不同的记录。这些UISegmentedControl中的每一个中的数据是否都由一个单独的控制器控制? (例如UISegmentsFollowingController

如何在地图上查看位置,以及您想拥有地图视图和列表视图?是否会有YouControllerMapViewController,或者一个View Controller会管理所有这些,并根据用户选择的内容有条件地加载不同的视图?

2 个答案:

答案 0 :(得分:0)

不,您可以使用单个UIViewController和/或UITableView(取决于您希望如何呈现数据),只需根据分段控制选项更改dataSource

有关详情,请查看UITableViewDataSource。在Table View的情况下,dataSource只不过是一些数据的数组。

除了Table View / Collection View之外的另一种方法是将Container View放在UIViewController中,它只使用一个UIViewController实例。有关更多信息refer to the documentation。特别是,看看图片:

Taken from Apple Documentation.

对于你的第二个问题 - 不要再说了。您可以拥有一个UIViewController并放置MapKit和/或列表(又名UITableView)的实例。您可以通过拖动MapKit的实例在Storyboard中执行此操作:

enter image description here

您的单个 UIViewController可能如下所示:

enter image description here

答案 1 :(得分:0)

听起来像是在这里继承救援。

如果你有“关注”的UISegmentedControl和“你”的另一个UISegmentedControl,那么最好的架构可能会使用继承,并为每个UISegmentedControls分别设置两个控制器,名称为{{1和FollowingSegmentedViewController,这样你的单独控制器知道他们正在加载和使用的数据类型(“你”数据或“跟随”数据)以及你的“你”UIView和你之间的其他特殊考虑或差异“跟随UIView,就像一个是地图,一个是桌子。

然后对于常见的UISegmentedControl函数和属性,你有一个基类,你的YouSegmentedViewControllerFollowingSegmentedViewController 继承,调用它YouSegmentedViewController或者其他什么是适合您的应用和结构。

此继承允许您在BaseSegmentedViewControllerFollowingSegmentedViewController之间共享公共UI元素(通过@outlets)和其他方法/函数,但是也可以在不同的控制器中专门解决两者之间的差异。