Ios 视图控制器和多个视图

Ios 视图控制器和多个视图,ios,uiviewcontroller,Ios,Uiviewcontroller,我正在开发我的第一个iOS应用程序,并试图了解一些有关视图和视图控制器的信息 我的问题是:在Instagram这样的应用程序中,主选项卡栏控制器中有一个“活动”选项卡。“活动”选项卡有一个用于“跟踪”和“您”的UISegmentedControl,显示类似的数据,但查询不同的记录。这些ui段中的数据是否由单独的控制器控制?(例如,followercontroller和YouController) 例如查看地图上的位置,并且您希望拥有地图视图和列表视图,这类实例又如何呢?是否有一个MapViewC

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

我的问题是:在Instagram这样的应用程序中,主
选项卡栏控制器中有一个“活动”选项卡。“活动”选项卡有一个用于“跟踪”和“您”的
UISegmentedControl
,显示类似的数据,但查询不同的记录。这些
ui段中的数据是否由单独的控制器控制?(例如,
followercontroller
YouController


例如查看地图上的位置,并且您希望拥有地图视图和列表视图,这类实例又如何呢?是否有一个
MapViewController
和一个
ListViewController
,或者一个视图控制器管理所有这些,并且根据用户选择的内容有条件地加载不同的视图?

否,您可以使用单个UIViewController和/或UITableView(取决于您希望如何显示数据)只需根据分段控件的选项更改
数据源

有关更多信息,请查看示例。在表视图的情况下,数据源只是一些数据的数组

除了表视图/集合视图之外,另一种方法是将
容器视图
放在UIViewController中,它只使用一个UIViewController实例。了解更多信息。特别是,请看图片:

关于你的第二个问题——再次否定。您可以使用单个UIViewController并放置
MapKit
和/或列表(也称为
UITableView
)的实例。您可以在情节提要中通过如下方式拖动MapKit的实例来执行此操作:

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


这听起来像是对救援的继承

如果您有一个用于“Following”的UISegmentedControl和另一个用于“you”的UISegmentedControl,那么最好的体系结构可能是使用继承,并且每个UISegmentedControl都有两个单独的控制器,使用名称
followersegmentedviewcontroller
YouSegmentedViewController
,这样,您的独立控制器就可以知道他们正在加载和处理的数据类型(“您”数据或“跟随”数据)以及“您”UIView和您的UIView之间的其他特殊注意事项或差异“遵循UIView,一个是地图,一个是表格

然后,对于常见的UISegmentedControl函数和属性,您有一个基类,您的
后续SegmentedViewController
您的SegmentedViewController
继承自该基类,将其称为
BaseSecgmentedViewController
,或任何适合您的应用程序和体系结构的基类


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

您可以实现容器视图控制器,只需在其中加载视图控制器的视图。地图不需要另一个视图控制器,您可以将所有东西放在一个视图控制器中!!如果您认为map部分是从其他类调用的,那么您可能需要为map提供一个单独的控制器。感谢您的响应。对于第一个示例,这对我来说是有意义的,因为视图是相同的。然而在我的第二个例子中,一个是表视图,另一个是谷歌地图。那需要两个不同的视图控制器吗?谢谢。然后我会相应地隐藏/显示那些表/地图视图?你可以做任何你想做的:)你可以隐藏地图并只显示表视图,或者反过来。如果您想要实现单击单元格以在地图上显示特定pin,您也可以这样做。但在这种情况下,您可能需要考虑创建另一个UIVIEW控制器来处理这个问题,因为您可能希望在下面显示一个映射和一些其他信息,而不使用TabLVIEW。这完全是一个你到底想要实现什么的问题。