1

我想将两个不同的视图(列表和地图)放入一个视图控制器中。用户可以通过按顶部的右键来更改视图。两者都有搜索选项。如果可能的话,我想将列表和地图的类分开。

我会很感激一些提示如何制作它。

查看 http://img201.imageshack.us/img201/1104/56044506.png

4

3 回答 3

3

我建议您创建一个作为 的子类的父类,该类UIViewController的目的是处理搜索栏功能和来自数据源的任何常见委托回调。

从理论的角度来看,这个类将作为一个抽象类,这意味着它应该只被子类化而不是直接初始化,但由于这在objective-c中是不可能的,所以不要太担心这一点。

下一部分取决于您是否想为列表和地图使用两个视图控制器(在问题的最后,您说您想使用两个类......?)

然后,您可以创建两个UIViewControllers,一个用于映射,一个用于列表,它们都将继承上述抽象类。这将允许他们继承数据源委托回调和搜索栏功能。

或者您可以将两者组合成一个UIViewController子类,作为上述抽象类的子类,并且在A'sa Dickens的回答中,您可以在单个 xib 文件中管理两个视图,并通过隐藏和显示,或从它们的视图中添加和删除它们在它们之间进行交换超级视图。

希望这可以帮助。

于 2013-04-28T11:13:07.910 回答
0

在您的 xib 或情节提要中有 2 个视图 1 个用于地图视图,1 个用于列表视图,当他们单击其中一个按钮时,它会隐藏一个视图并显示另一个具有隐藏属性的视图

[listView setHidden:NO];

这是一个例子....

确保您对这两个视图都有引用,并且该引用已链接。这是一种晦涩难懂的方法。你也可以尝试一个标签视图控制器......但这更复杂

于 2013-04-28T10:57:40.180 回答
0

使用 UITableView 和 MKMapView 并将它们添加到相同的内容视图中。根据用户单击的按钮,使用 hidden 属性隐藏和取消隐藏视图。

于 2013-04-28T11:14:47.637 回答