我正在开发我的第一个iOS应用,并尝试了解有关视图和视图控制器的信息。
我的问题是:在像Instagram这样的应用程序中,有一个'活动'主Error: operand type mismatch for `fld'
Error: operand type mismatch for `fst'
中的标签。活动标签有一个Tab Bar Controller
用于"关注" &安培; "您"它显示类似的数据,但查询不同的记录。这些UISegmentedControl
中的每一个中的数据是否都由一个单独的控制器控制? (例如UISegments
和FollowingController
。
如何在地图上查看位置,以及您想拥有地图视图和列表视图?是否会有YouController
和MapViewController
,或者一个View Controller会管理所有这些,并根据用户选择的内容有条件地加载不同的视图?
答案 0 :(得分:0)
不,您可以使用单个UIViewController和/或UITableView(取决于您希望如何呈现数据),只需根据分段控制选项更改dataSource
。
有关详情,请查看UITableViewDataSource。在Table View的情况下,dataSource只不过是一些数据的数组。
除了Table View / Collection View之外的另一种方法是将Container View
放在UIViewController中,它只使用一个UIViewController实例。有关更多信息refer to the documentation。特别是,看看图片:
对于你的第二个问题 - 不要再说了。您可以拥有一个UIViewController并放置MapKit
和/或列表(又名UITableView
)的实例。您可以通过拖动MapKit的实例在Storyboard中执行此操作:
您的单个 UIViewController可能如下所示:
答案 1 :(得分:0)
听起来像是在这里继承救援。
如果你有“关注”的UISegmentedControl和“你”的另一个UISegmentedControl,那么最好的架构可能会使用继承,并为每个UISegmentedControls分别设置两个控制器,名称为{{1和FollowingSegmentedViewController
,这样你的单独控制器知道他们正在加载和使用的数据类型(“你”数据或“跟随”数据)以及你的“你”UIView和你之间的其他特殊考虑或差异“跟随UIView,就像一个是地图,一个是桌子。
然后对于常见的UISegmentedControl函数和属性,你有一个基类,你的YouSegmentedViewController
和FollowingSegmentedViewController
继承,调用它YouSegmentedViewController
或者其他什么是适合您的应用和结构。
此继承允许您在BaseSegmentedViewController
和FollowingSegmentedViewController
之间共享公共UI元素(通过@outlets)和其他方法/函数,但是也可以在不同的控制器中专门解决两者之间的差异。